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

时间:2017-03-17 15:04:29

标签: xml plsql

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

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

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

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

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

注2:xml似乎正常

谢谢

1 个答案:

答案 0 :(得分:0)

如果您正在寻找数据库内的解决方案,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>

嗯。 StackOverflow已经抑制了SQL输出中的非打印字符,因此在没有实际运行它的情况下很难看到发生了什么。