Oracle XML解析出现无效字符错误。

3
我正在使用Oracle 11G sql developer的导出工具将表格数据转换为XML。为此,我使用了utf-8编码。在数据库中看到的特殊字符(0x13)以方框的形式出现在XML中。为了摆脱这个特殊字符,我们需要在Sql Developer中选择其他编码吗?
我面临的问题是,在尝试将上述创建的xml文件插入不同的Oracle表格(使用xmltable函数)时,“xml解析失败”。我收到以下错误信息:
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个回答

1

您可以通过REPLACE函数删除特殊字符 - 只需将CHR(13)替换为空格即可:

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

没有坏字符列表就毫无用处。 - Superdooperhero

1

您可以使用Oracle提供的函数dbms_xmlgen.convert(...)来删除所有特殊字符。

dbms_xmlgen.convert(arg1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接