我需要標識所有記錄中存在標籤的地方,如<hint name="REAL_TIME_TAGGING" value="TRUE">
。 xml作爲oracle clob存儲在表tab_a(xml clob列:col_a)中,並在此處顯示片段。在oracle clob中檢查xml標籤元素屬性值
<category>
<hints>
<hint name="NO_DEDUP" value="FALSE"></hint>
<hint name="REAL_TIME_TAGGING" value="TRUE"></hint>
more <hint> elements
<hint ...>
</hints>
<elements>
<element>
...
</element>
</elements>
</category>
,我可以做如下:
select * from tab_a where EXTRACTVALUE (XMLTYPE (col_a),'/category/hints/hint[2]/@name') = 'REAL_TIME_TAGGING';
但是,我相信一定有使用existsnode等,這是不是爲我工作的一種更好的方式。 此外,這裏的捕捉是暗示[2]不一定是這種情況。在有些情況下,它可能在第二個位置以外的任何地方,並且上述查詢在其他情況下不在提示[2]位置時會失敗。
任何幫助將是非常讚賞。 任何幫助將非常感激。
如何/類別/提示//提示/ @ name ='REAL_TIME_TAGGING'?這應該看所有元素。你是什麼意思,「existnode等不起作用?」你得到一個錯誤,或沒有結果回來?請在這種情況下顯示您正在嘗試的內容。 –
OldProgrammer
謝謝。我已經能夠使用existsNode來弄清楚了。得到了一個令我沮喪的ORA錯誤。但是,現在我已經消除它並正在工作。 – Casey