将 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_idp_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 列时出错的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL:将 CLOB 转换为 XML

xml解析和存储数据

oracle, xmltype/clob substr 循环

使用 PL/SQL 解析 XML 输出 html 中特定标签的内容

初识Oracle的XMLType

使用 Perl 批量插入 Oracle XMLTYPE