I wrote a stored-procedure in Oracle to read data in XML with namespaces.
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;
Getting error as 'ORA-19280: XQuery dynamic type mismatch: expected atomic value - got node'
Please advise.
thanks , Bhushan