I have the following XML and i want to extract the values of json parameter \"serviceNumber\" separately i tried using EXTRACT function but i got the results co
Try XMLTABLE
select * from xmltable(XMLNAMESPACES( 'http://www.ibm.com/xmlns/prod/2009/jsonx' as "json") , '//json:string[@name eq "serviceNumber"]' passing xmltype({your_xml_here})
columns serviceNumber varchar2(100) path '.'
)
Use XMLTABLE
:
SELECT x.serviceNumber
FROM your_table t
CROSS JOIN
XMLTABLE(
XMLNAMESPACE( 'http://www.yourserver.url/json/' AS "json" ),
'//root/Input/Body/json:object/json:array/json:object/'
PASSING XMLTYPE(
'<?xml version="1.0" encoding="utf-8"?>' ||
'<root xmlns:json="http://www.yourserver.url/json/">' ||
t.your_xml_column ||
'</root>'
)
COLUMNS serviceNumber NUMBER PATH './json:string[@name="serviceNumber"]'
) x