Tuesday, December 1, 2009
XMLPARSE and XMLTABLE sample for dynamic SQL (CLOB to XML to SQL)
SELECT T.*
FROM (select xmlparse(document '
<y>
<patient id="11123">
<name>Sara Lee</name>
<addr>
<street>33 Maple</street>
<city>Nearly</city>
<state>NJ</state>
<zip>07123</zip>
</addr>
<phone type="home">908-842-7531</phone>
<email>saralee@cakemail.com</email>
<service>
<sdate>2004-02-29</sdate>
<reason>brittle nails</reason>
<descrip>prescribe hormones</descrip>
<cost>84.00</cost>
<copay>15.00</copay>
</service>
</patient>
<patient id="55555">
<name>Jim Beam</name>
<addr>
<street>789 Pine</street>
<city>Uptown</city>
<state>NJ</state>
<zip>07733</zip>
</addr>
<phone type="home">908-554-5454</phone>
<phone type="work">908-445-4545</phone>
<phone type="fax">908-332-2424</phone>
<email>jbeam@gmail.com</email>
<service>
<sdate>2007-10-31</sdate>
<reason>short of breath</reason>
<descrip>trick or treatment</descrip>
<cost>45.00</cost>
<copay>5.00</copay>
</service>
</patient>
</y>
' strip whitespace) as PATIENT_XML
from sysibm.sysdummy1) P, XMLTABLE (XMLNAMESPACES(DEFAULT ''),
'/y/patient' PASSING P.PATIENT_XML
COLUMNS "PATNAME" VARCHAR(30) PATH 'name',
"LOCATION" VARCHAR(30) PATH 'addr/city',
"ID" VARCHAR(30) PATH '@id'
) T
;
Sample is formed from presentation of Gregg Lippa (Gregg Lippa-Using XML with DB2).
