PLSQL:来自 xpath 的值在前面有一些字符

Posted

技术标签:

【中文标题】PLSQL:来自 xpath 的值在前面有一些字符【英文标题】:PLSQL : value from xpath has some characters on front 【发布时间】:2017-03-17 15:04:28 【问题描述】:

在 PLSQL 中,我打开一个 xml 文件并使用 DBMS_XSLPROCESSOR.selectNodes 读取一些节点以使用一些 xpath 表达式。

一切都很好,但仅对于一种节点,我得到的值(是好的)在字符串前面有一些字符。我以为是一些空格,但不是。

当我在表中插入值时,字符仍然存在,并且我可以摆脱偏移量。

你知道它可能是什么吗?如何发现它可能是什么?如何摆脱它?

注意:由于这些字符不是空格,因此修剪不起作用。

注意2:xml似乎是正常的

谢谢

【问题讨论】:

【参考方案1】:

如果您正在寻找数据库内解决方案,SQL dump() 函数将显示字符串中每个字符的 ASCII 值。

SQL> select dump('WHAT IS THIS?') from dual
  2  /

DUMP('WHATISTHIS?')
-----------------------------------------------------
Typ=96 Len=13: 87,72,65,84,32,73,83,32,84,72,73,83,63

SQL> 

至于摆脱它,你可以使用translate()

SQL> with cte as (select chr(11) || chr(23) || 'WHAT IS THIS?' || chr(23) as str from dual)
  2  select str
  3        , dump(str) as dump_str
  4        , translate(str, 'z'||chr(11)||chr(23), 'z') as cleaned_str
  5  from cte
  6  /

STR              DUMP_STR
---------------- -------------------------------------------------------------
CLEANED_STR
-------------

WHAT IS THIS?
               Typ=1 Len=16: 11,23,87,72,65,84,32,73,83,32,84,72,73,83,63,23
WHAT IS THIS?


SQL>

嗯。 *** 已经抑制了 SQL 输出中的非打印字符,因此如果不实际运行它,就很难看到发生了什么。

【讨论】:

以上是关于PLSQL:来自 xpath 的值在前面有一些字符的主要内容,如果未能解决你的问题,请参考以下文章

plsql update 字段值 前面增加 字符

PLSQL 的 extractValue 方法中的 XPath 不正确

Android - 来自 AlertDialog 的字符串值在访问时不断重置

plsql客户资料

“NSMutableDictionary”类型的值在 swift 中没有成员“字符串”

在 xpath 中使用 [not] 检索与给定值不匹配的内容 (PLSQL)