【发布时间】:2017-09-24 18:04:06
【问题描述】:
我有以下 XML 数据:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="Receipt Test" _QUANTITY="1" _JOBNAME="LBL4001">
<label>
<variable name= "RECEIVE_DATE">25-APR-2017</variable>
<variable name= "PO_NUM">12345</variable>
<variable name= "QTY">1</variable>
<variable name= "RECEIPT_NUM">128419</variable>
</label>
</labels>
我需要使用 SQL 查询为 _FORMAT 提取值 Receipt Test。
我已经编写了下面的查询,但它不工作,因为它返回空值。
SELECT TRIM (EXTRACTVALUE (VALUE (x), '//variable')) FROM (SELECT XMLTYPE (p_xml_content) xml FROM DUAL),
TABLE (XMLSEQUENCE (EXTRACT (xml, 'labels'))) x
WHERE UPPER (EXTRACTVALUE (VALUE (x), '//@name')) = '_FORMAT';
根据要求,此查询应返回“收据测试”值。请帮助我实现这一目标。
【问题讨论】:
-
这里有问题吗? (“有人可以帮我写这个吗?” 不是问题。)
-
SELECT TRIM (EXTRACTVALUE (VALUE (x), '//variable')) FROM (SELECT XMLTYPE (p_xml_content) xml FROM DUAL), TABLE (XMLSEQUENCE (EXTRACT (xml, 'labels')) ) x WHERE UPPER (EXTRACTVALUE (VALUE (x), '//@name')) = '_FORMAT';
-
我已经编写了上述查询,但它不起作用。请帮忙
-
您应该将所有代码添加到问题中(您可以随时编辑您的帖子)。除了 SQL,还要写下它当前产生的结果以及您期望的结果。
-
嗨 Tomalak,我已按要求编辑了我的帖子。谢谢