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żGovernmentCode
jest elementem, a nie atrybutem. -
Po drugie, musisz określić deklarację przestrzeni nazw XML w wywołaniu
EXTRACTVALUE
jak 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="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;