|
|
|
|
|
|
|
|
|
|
| Re: accessing xml values from a table [message #575997 is a reply to message #575969] |
Wed, 30 January 2013 07:42   |
Solomon Yakobson
Messages: 1398 Registered: January 2010
|
Senior Member |
|
|
thecynosure_pc wrote on Wed, 30 January 2013 00:17got the query
This is SQL Server query. In Oracle you'd do something like:
SQL> with t as (
2 select xmltype('<fields>
3 <field key="Public Email">piyush@chand.com</field>
4 <field key="Location">bangalore</field>
5 <field key="Website" />
6 <field key="Birthday">0001-01-01 00:00:00</field>
7 <field key="Gender">Male</field>
8 <field key="Language">English</field>
9 </fields>') xml_doc from dual
10 )
11 select location
12 from t,
13 xmltable(
14 '/fields/field[@key="Location"]'
15 passing xml_doc
16 columns
17 location varchar2(20) path '.'
18 )
19 /
LOCATION
--------------------
bangalore
SQL>
OR:
SQL> with t as (
2 select xmltype('<fields>
3 <field key="Public Email">piyush@chand.com</field>
4 <field key="Location">bangalore</field>
5 <field key="Website" />
6 <field key="Birthday">0001-01-01 00:00:00</field>
7 <field key="Gender">Male</field>
8 <field key="Language">English</field>
9 </fields>') xml_doc from dual
10 )
11 select extractvalue(xml_doc,'/fields/field[@key="Location"]')
12 from t
13 /
EXTRACTVALUE(XML_DOC,'/FIELDS/FIELD[@KEY="LOCATION"]')
--------------------------------------------------------------------
bangalore
SQL>
SY.
|
|
|
|
| Re: accessing xml values from a table [message #575999 is a reply to message #575997] |
Wed, 30 January 2013 07:49  |
Solomon Yakobson
Messages: 1398 Registered: January 2010
|
Senior Member |
|
|
And if you want to get multiple attributes using XMLTABLE:
SQL> with t as (
2 select xmltype('<fields>
3 <field key="Public Email">piyush@chand.com</field>
4 <field key="Location">bangalore</field>
5 <field key="Website" />
6 <field key="Birthday">0001-01-01 00:00:00</field>
7 <field key="Gender">Male</field>
8 <field key="Language">English</field>
9 </fields>') xml_doc from dual
10 )
11 select location,
12 language
13 from t,
14 xmltable(
15 '/fields'
16 passing xml_doc
17 columns
18 location varchar2(20) path 'field[@key="Location"]',
19 language varchar2(20) path 'field[@key="Language"]'
20 )
21 /
LOCATION LANGUAGE
-------------------- --------------------
bangalore English
SQL>
SY.
|
|
|
|