Acho que tem duas coisas erradas aqui:
-
Em primeiro lugar, sua expressão XPath//@GovernmentCode/
está errado. Não deve ter um/
à direita , e você não quer o@
seja porqueGovernmentCode
é um elemento, não um atributo.
-
Em segundo lugar, você deve especificar a declaração de namespace XML em sua chamada paraEXTRACTVALUE
bem como em sua chamada paraEXTRACT
.
Fazer essas alterações deixa você com o código a seguir. Fiz um teste rápido e funcionou:
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;