Oracle SQL – 使用重复节点从XML中提取clob值
发布时间:2021-03-16 12:27:31 所属栏目:百科 来源:网络整理
导读:我试图在一个表上运行SQL(名为test_xml,列为xml_data [数据类型xmltype]).该列包含具有重复节点的xml(test_3).当节点包含非clob大小的数据时,以下语句成功运行: SELECT extractvalue (Value (wl),'*/test_3') FROM test_xml,TABLE (xmlsequence (extract
我试图在一个表上运行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节点包含大量数据时失败:
我修改了我的查询: SELECT extractvalue(Value (wl),'*/test_3').getClobVal() FROM test_xml,'*/record'))) wl 但这失败了:
解决方法通过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_3 FROM test_xml t,XMLTable( '/*/record' passing t.xml_data columns test_3 xmltype path 'test_3/text()' ) x ; 谢谢你去odie_63吧 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |