Myślę, że są dwie rzeczy, które się mylisz:
-
Po pierwsze, wyrażenie XPath
//@GovernmentCode/jest źle. Nie powinien mieć końcowego/i nie chcesz@albo ponieważGovernmentCodejest elementem, a nie atrybutem. -
Po drugie, musisz określić deklarację przestrzeni nazw XML w wywołaniu
EXTRACTVALUEjak również w Twoim wezwaniu doEXTRACT.
Dokonanie tych zmian pozostawia ci następujący kod. Przeprowadziłem szybki test i wydawało się, że działa:
SELECT EXTRACTVALUE (VALUE (xml_list), '//GovernmentCode', 'xmlns="https://www.irs.gov/efile"') AS SysID
INTO lv_transid
FROM TABLE (
XMLSEQUENCE (
EXTRACT (in_xmlclob, '/AckTransmission/Acknowledgement',
'xmlns="https://www.irs.gov/efile"'))) xml_list;