从XML中删除无效字符

时间:2015-06-24 13:39:23

标签: oracle plsql

Oracle中是否有一个函数/过程从varchar2删除无效的XML字符?

我需要这个,因为我想从数据库中生成XML,而某些varchar2数据具有无效的控制字符(见下文),我需要删除它。

我担心代码U+0020下面的控制字符:

U+0009, U+000A, U+000D: these are the only C0 controls accepted in XML 1.0;

我查了DBMS_XMLGEN并找不到合适的内容。

我自己有什么东西要编程吗?

3 个答案:

答案 0 :(得分:1)

我假设您的数据库字符代码是UTF8,并且这些字符从数据库的角度来看是有效的。 然后你可以简单地将它们替换为空白或NULL来摆脱它们。

e.g。

replace(str,UNISTR('\000D'),null)

答案 1 :(得分:0)

尝试 select DBMS_XMLGEN.CONVERT(UNISTR('\000D')) from dual

答案 2 :(得分:0)

此函数将使用相应的替换值dbms_xmlgen.convert()

替换非法的xml字符