0
我有一個查詢,從我的clob中提取一些XML節點。如何獲取Oracle XPath表達式中父元素的名稱?
select pid, name, xml from (
select d.pid, d.name
, EXTRACT(xmltype(d.data), '//ns1:myId', 'xmlns:ns1="http://acme.com/') xml
from DATA d
order by d.pid desc
)
;
但我想看看提取的xmlnode的父元素名稱實際上是什麼。我試圖
, EXTRACT(xmltype(d.data), '//ns1:myId/../name()', ...) xml
和
, EXTRACT(xmltype(d.data), '//ns1:myId/name()', ...) xml
和
, EXTRACT(xmltype(d.data), '//ns1:myId/local-name()', ...) xml
但甲骨文拒絕所有的F將它們與 「無效令牌」 的錯誤消息。
我的Oracle版本是「11.2.0.3.0」。
當然,'extract'的結果不能向上遍歷。但我想我可以修改XPath表達式,這樣'extract'返回父節點供我檢查。 – towi
@towi - 我的意思是在XPath中,而不是後解壓縮,但這是不正確的;這是不受支持的功能。我已經更新了答案以顯示如何完成。不過,我仍然會在棄用的'extract()'上使用更新的功能。 –
工作。感謝您提供'extract'的附加信息已被棄用。我不明白你的不被棄用的解決方案,但是,當我必須的時候,我會的。它裏面有太多東西,我只在「傳球」中看到過,而且他們總是讓我的眼睛「交叉」。 – towi