I'm very new to Oracle XML and am trying to retrieve 2 rows of 4 columns of vehicle data.
SQL:
select extract(xml, 'VEHICLES/VEHICLE/NUM_VEHICLE') as NUM_VEHICLE, extract(xml, 'VEHICLES/VEHICLE/NUM_YEAR') as NUM_YEAR, extract(xml, 'VEHICLES/VEHICLE/DES_PLATE') as DES_PLATE, extract(xml, 'VEHICLES/VEHICLE/CDE_STATE') as CDE_STATE from XML_TAB_HISTORY t where t.id = 7 XML:
<VEHICLES> <VEHICLE> <NUM_VEHICLE>1</NUM_VEHICLE> <NUM_YEAR>2011</NUM_YEAR> <DES_PLATE>ABC123</DES_PLATE> <CDE_STATE>NJ</CDE_STATE> </VEHICLE> <VEHICLE> <NUM_VEHICLE>2</NUM_VEHICLE> <NUM_YEAR>2012</NUM_YEAR> <DES_PLATE>XYZ987</DES_PLATE> <CDE_STATE>NJ</CDE_STATE> </VEHICLE> </VEHICLES> I'm getting 1 row of 4 XMLTYPEs:
<NUM_VEHICLE>1</NUM_VEHICLE> <NUM_VEHICLE>2</NUM_VEHICLE> <NUM_YEAR>2011</NUM_YEAR> <NUM_YEAR>2012</NUM_YEAR> <DES_PLATE>ABC123</DES_PLATE> <DES_PLATE>XYZ987</DES_PLATE> <CDE_STATE>NJ</CDE_STATE> <CDE_STATE>NJ</CDE_STATE> What I'd like to get is 2 rows of values only:
NUM_VEHICLE NUM_YEAR DES_PLATE CDE_STATE ----------- -------- --------- --------- 1 2011 ABC123 NJ 2 2012 XYZ987 NJ I tried using "extractvalue" in place of extract in the SQL, but received this error: ORA-19025: EXTRACTVALUE returns value of only one node.
Thanks in advance for any suggestions or pointers in the right direction.
Andrew