在PLSQL中,我打开一个xml文件并使用DBMS_XSLPROCESSOR.selectNodes读取一些节点以使用一些xpath表达式。
一切都很好但是对于一种节点,我得到的值(是好的)在字符串前面有一些字符。我以为这是一些空间但不是。
当我在表中插入值时,字符仍然存在,并且有一个偏移我可以摆脱。
你知道它可能是什么吗?如何发现它可能是什么?如何摆脱它?
注意:由于这些字符不是空格,因此修剪不起作用。
注2:xml似乎正常
谢谢
答案 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输出中的非打印字符,因此在没有实际运行它的情况下很难看到发生了什么。