我从请求中获取以下XML:
<records>
<record>
<field name="code" value="1"/>
<field name="dexcription" value="MyName"/>
<field name="id" value="666">
</record>
<record>
<field name="code" value="2"/>
<field name="dexcription" value="MyName"/>
</record>
...
</records>
第一条记录成功处理,返回元素“id”;第二个不是,所以没有这个元素就返回了。
我需要编写一个基于XML SQL查询来返回这两列(“code”和“id”),但只记录成功处理的记录。我尝试使用XMLType,但它仍然失败。任何人都可以帮助我吗?
提前致谢,对不起我的“google”英语。
答案 0 :(得分:1)
我找到了解决方案:
SELECT EXTRACT (COLUMN_VALUE, '/record/field[@name="code"]/@value').GETSTRINGVAL () AS CODE,
EXTRACT (COLUMN_VALUE, '/record/field[@name="id"]/@value').GETSTRINGVAL () AS ID
FROM TABLE (XMLSEQUENCE (XMLTYPE (:XXML).EXTRACT ('/records/record')))
WHERE EXTRACT (COLUMN_VALUE, '/record/field[@name="id"]') IS NOT NULL