ここで間違っていることが2つあると思います:
-
まず、XPath式
//@GovernmentCode/
間違っている。末尾に/
を付けないでください 、そしてあなたは@
を望まないGovernmentCode
は要素であり、属性ではありません。 -
次に、
EXTRACTVALUE
の呼び出しでXML名前空間宣言を指定する必要がありますEXTRACT
への呼び出しと同様に 。
これらの変更を行うと、次のコードが残ります。簡単なテストを行いましたが、うまくいったようです:
SELECT EXTRACTVALUE (VALUE (xml_list), '//GovernmentCode', 'xmlns="http://www.irs.gov/efile"') AS SysID
INTO lv_transid
FROM TABLE (
XMLSEQUENCE (
EXTRACT (in_xmlclob, '/AckTransmission/Acknowledgement',
'xmlns="http://www.irs.gov/efile"'))) xml_list;