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ìGovernmentCode
là 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
EXTRACTVALUE
cũ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="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;