Oracle SQL – 使用重复节点从XML中提取clob值

Oracle SQL – 使用重复节点从XML中提取clob值,第1张

概述我试图在一个表上运行SQL(名为test_xml,列为xml_data [数据类型xmltype]).该列包含具有重复节点的xml(test_3).当节点包含非clob大小的数据时,以下语句成功运行: SELECT extractvalue (Value (wl), '*/test_3') FROM test_xml , TABLE (xmlsequence 我试图在一个表上运行sql(名为test_xml,列为xml_data [数据类型xmltype]).该列包含具有重复节点的xml(test_3).当节点包含非clob大小的数据时,以下语句成功运行:

SELECT    extractvalue (Value (wl),'*/test_3')      FROM test_xml,table (xmlsequence (extract (xml_data,'*/record'))) wl

但是当test_3节点包含大量数据时失败:

ORA-01706: user function result value was too large

我修改了我的查询:

SELECT    extractvalue(Value (wl),'*/test_3').getClobVal()      FROM test_xml,'*/record'))) wl

但这失败了:

ORA-22806: not an object or REF

解决方法 通过Oracle论坛收到的回复解决了这个问题:

See Forum Post

从Oracle 11.2.0.2版开始:

SELECT x.*FROM test_xml t,XMLtable(       '/*/record'       passing t.xml_data       columns         test_3  clob path 'test_3'     ) x;

我的数据库版本是10.2.0.4,因此需要以下“技巧”:

SELECT dbms_xmlgen.convert(x.test_3.getClobVal(),1) as test_3FROM test_xml t,XMLtable(       '/*/record'       passing t.xml_data       columns         test_3  xmltype path 'test_3/text()'     ) x;

谢谢你去odIE_63吧

总结

以上是内存溢出为你收集整理的Oracle SQL – 使用重复节点从XML中提取clob值全部内容,希望文章能够帮你解决Oracle SQL – 使用重复节点从XML中提取clob值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存