oracle xml解析会产生无效的字符错误

时间:2009-08-20 18:35:49

标签: xml oracle oracle11g

我正在使用Oracle 11G sql developer的Export Utility将表格数据转换为XML。为此,我使用了utf-8编码。我在DB中看到的特殊字符(0x13)作为方框,已经进入xml。要摆脱这个特殊字符,我们是否需要在Sql Developer中选择其他一些编码?

我面临的问题是'xml解析失败',而我尝试将上面创建的xml文件插入到不同的Oracle表中(使用xmltable函数)。我得到以下错误。

ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00216: invalid character 0 (0x13)
Error at line 10682
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 0
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 26
ORA-06512: at line 9

如果我手动删除xml文件中的特殊字符,它就会正常工作。但是我想在不删除它的情况下使其工作。

2 个答案:

答案 0 :(得分:1)

您可以通过REPLACE功能删除特殊字符 - 只需通过空白替换CHR(13):

REPLACE(arg1, CHR(13), '');

答案 1 :(得分:1)

您可以使用Oracle提供的函数dbms_xmlgen.convert(...)

删除所有spl chars
dbms_xmlgen.convert(arg1)