【问题标题】:oracle xml parsing gives invalid character errororacle xml解析给出无效字符错误
【发布时间】:2010-11-21 10:29:36
【问题描述】:

我正在使用 Oracle 11G sql 开发人员的导出实用程序将表格数据转换为 XML。为此,我使用了 utf-8 编码。我在 DB 中看到的特殊字符 (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 文件中删除特殊字符,它就可以正常工作了。但我想在不删除它们的情况下让它工作。

【问题讨论】:

    标签: xml oracle oracle11g


    【解决方案1】:

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

    dbms_xmlgen.convert(arg1)
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 没有坏字符列表就没用
      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2012-09-10
      • 1970-01-01
      • 2011-07-18
      相关资源
      最近更新 更多