[英]In Oracle, how can I extract value of XML item in XML column?
我在 Oracle 表中有 XML 列,其中我有這個字符串:
<field name="Text1" type="String"><value/>
如果存在,我需要提取該字段的值,在上面的示例中它不存在。 在下面的示例中,該值存在:
<field name="Text1" type="String"><value>12345</value>
最好的方法是什么?
謝謝你。
正如你所說:提取價值。
SQL> with test (col) as
2 (select '<field name="Text1" type="String"><value>12345</value></field>'
3 from dual
4 )
5 SELECT extractvalue(xmltype(col), '/field/value') result
6 from test;
RESULT
----------------------------------------------------------------------------------------------------
12345
SQL>
XMLTABLE
將是一個不錯的選擇,以這樣的方式使用
SELECT x.*
FROM xml_tab t,
XMLTABLE('//Root'
PASSING xml_data
COLUMNS
field1 INT PATH 'field[@name="Text1"]/value',
field2 INT PATH 'field[@name="Text2"]/value'
) x
返回
現場1 | FIELD2 |
---|---|
12345 |
xml_data
可能在哪里
<Root>
<field name="Text1" type="String">
<value>12345</value>
</field>
<field name="Text2" type="String">
<value/>
</field>
</Root>
PS。 EXTRACTVALUE
function 已棄用。 它仍然支持向后兼容。 但是,Oracle 建議您改用XMLTABLE
function 或XMLCAST
和XMLQUERY
函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.