我得到的是下面的errpr:
ORA-31011:XML解析失败 ORA-19202:XML处理发生错误 LPX-00607:无效的引用:'ends-with'。 31011. 00000 - “XML解析失败” *原因:XML解析器在尝试解析文档时返回错误。 *操作:检查要解析的文档是否有效。 当我试图在oracle SQLDeveloper中执行下面的语句时,有人可以帮我修复下面的查询。
选择emp_id,Extract(emp_xml,'// node()[ancestor :: item_content或ancestor :: stimulus_reference] [not(ancestor :: rationale)] [self :: inline_variable] / preceding-sibling :: node( )[1] [self :: text()] [not(ends-with(。,“”)或ends-with(。,“”)或ends-with(。,“ - ”))]')。 getStringVal()作为信息 来自emp,其中emp_id ='S348'
谢谢。
答案 0 :(得分:0)
Extract()
函数is deprecated,我认为它只支持XPath 1.0规范。 ends-with
是XPath 2.0规范的一部分。
如果你使用XMLQuery()
,它会使用包含XPath 2的XQuery。所以我认为这应该有用吗?
select XMLQuery(
'//node()[ancestor::item_content or ancestor::stimulus_reference][not(ancestor::rationale)][self::inline_variable]/preceding-sibling::node()[1][self::text()][not(ends-with(., " ") or ends-with(., " ") or ends-with(., "—"))]'
PASSING emp_xml RETURNING CONTENT).getStringVal() as info
from emp where emp_id ='S348';