将 XML 从 CLOB 列转换为 XMLType 列时出错
Posted
技术标签:
【中文标题】将 XML 从 CLOB 列转换为 XMLType 列时出错【英文标题】:Error when converting XML from a CLOB column to XMLType column 【发布时间】:2010-11-16 05:25:28 【问题描述】:我正在尝试将一些来自 CLOB 的 XML 数据转换为 XMLType 列。
XML 有一些重音字符作为值(文档是用法语编写的)。
下面是指令的样子:
insert into mytable (id, xmldata) values (p_id, xmltype(p_xmldata));
p_id
和p_xmldata
是先前从原始表中提取的变量。
我认为法语字符会阻止 XMLType 正常工作。或者可能是格式错误的 XML 标签?问题是,该表包含 3k+ 个 XML 文档,而 XMLType 列中只有 2 个被转换。
更新:这些是我尝试简单时遇到的错误:
select xmltype(xmldata) from mytable
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.XMLTYPE", line 254
ORA-06512: at line 1
【问题讨论】:
【参考方案1】:我使用了 createxml 方法,现在可以正常工作了
insert into mytable (id, xmldata) values (p_id, xmltype.createxml(p_xmldata));
【讨论】:
非常感谢。事实证明,这个微小的变化对我来说非常有益。以上是关于将 XML 从 CLOB 列转换为 XMLType 列时出错的主要内容,如果未能解决你的问题,请参考以下文章
oracle, xmltype/clob substr 循环