我在RHEL机器上从Oracle SQL developer IDE运行SELECT query
,如下所示
SELECT count(*)
From xyz
WHERE xmltype(xyz.xmlColumn).existsNode('//name=""') = 1;
如果我对单个记录执行上述查询,则工作正常。但是,当我对整个表执行它时,它会失败,并显示以下错误:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00210: expected '<' instead of 'C'
Error at line 1
ORA-06512: at "SYS.XMLTYPE", line 272
ORA-06512: at line 1
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.
上面的任何提示都会对我有所帮助。
发布于 2015-11-09 17:42:47
在xpath中包含/text。like select (COLUM_NAME).extract('//parentNode/chileNode/text()').getStringVal() as Value from TableName where UUID=‘Colum_Name’
发布于 2016-02-05 02:58:59
甲骨文抱怨"xyz.xmlColumn“不是有效的xml列或类型。它需要<element>....</element>
格式
发布于 2018-12-12 11:31:32
您的问题是,存储在CLOB中的内容不是XML文档,因为它缺少根节点。因为要扫描摘录中的整个文档,所以可以将其包装在一个元素中,以确保有且只有一个根,此时XMLTYPE类型转换将起作用。
从表名中选择XMLTYPE(''||clob_field||'').EXTRACT('//se/text()').getStringVal()
https://stackoverflow.com/questions/17417298
复制相似问题