Tôi nghĩ có hai điều bạn sai ở đây:
-
Thứ nhất, biểu thức XPath của bạn
//@GovernmentCode/sai. Nó không được có/ở cuối và bạn không muốn@hoặc vìGovernmentCodelà một phần tử, không phải một thuộc tính. -
Thứ hai, bạn phải chỉ định khai báo vùng tên XML trong lệnh gọi của bạn tới
EXTRACTVALUEcũng như trong cuộc gọi của bạn tớiEXTRACT.
Việc thực hiện những thay đổi này để lại cho bạn đoạn mã sau. Tôi đã cho nó một bài kiểm tra nhanh và nó dường như hoạt động:
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;