【发布时间】:2018-11-02 04:45:48
【问题描述】:
我在 Oracle 中编写了一个存储过程来读取带有命名空间的 XML 中的数据。
CREATE OR REPLACE PROCEDURE DynamicXQuery (fileName IN VARCHAR2)
AS
V_TransactionId VARCHAR2(50);
XPath VARCHAR2(200) := '/message/soap:Envelope/soap:Body/v01:recordTrans';
BEGIN
SELECT
X.trans_id
INTO
V_TransactionId
FROM TABLE_WITH_XML_COLUMN T,
XMLTABLE(
XMLNAMESPACES(
'http://schemas.xmlsoap.org/soap/envelope/' as "soap", 'http://comml.thesoaprequest.com/transactionrecording/v01/' as "v01"
),
'$fullXPath'
PASSING T.XML_DOCUMENT, XPath as "fullXPath"
COLUMNS
trans_id VARCHAR2(15) PATH 'transactionIdentifier'
) X
WHERE T.FILENAME = fileName;
收到错误为“ORA-19280:XQuery 动态类型不匹配:预期的原子值 - 得到节点”
请指教。
谢谢, 布山
【问题讨论】: