XMLTABLE and NameSpaces
677816Jun 16 2010 — edited Jul 9 2010Hello: I have the following xml in a xmltype column in an oracle table. Please see below. We need to be able to parse the xml into fields with xmltable. In the xml, if I remove the
the references to namespaces, I can get the following to select data ok. But when the xml has the namespace, it returns no rows. Does anyone know how to properly return data when the xml contains namespaces... Thanks in advance. Don
--works but I had to remove namespace at beginning in xml
SELECT TELETRAC_MESSAGE_ID,
TM_STATUS,
TM_TYPE,
TO_CHAR(INSERT_DATE,'MM/DD/YYYY') INSERT_DATE,
TMX.EVENTDATE,
TMX.VEHICLENAME,
TMX.ID,
TMX.MESSAGETEXT,
TMX.LATITUDE,
TMX.LONGITUDE
FROM TELETRAC_MESSAGES,
XMLTABLE('for $i in /GetMessagesResult/Messages/Message
return element r{$i/EventDate,
$i/VehicleName,
$i/ID,
$i/MessageText,
$i/Latitude,
$i/Longitude}'
PASSING TELETRAC_MESSAGES.XML_MESSAGE
COLUMNS
EVENTDATE VARCHAR2(30) PATH 'EventDate',
VEHICLENAME VARCHAR2(30) PATH 'VehilceName',
ID VARCHAR2(30) PATH 'ID',
MESSAGETEXT VARCHAR2(30) PATH 'MessageText',
LATITUDE VARCHAR2(30) PATH 'Longitude',
LONGITUDE VARCHAR2(30) PATH 'Latitude') TMX;
---------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<GetMessagesResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://urt.teletrac.net/">
<Messages>
<Message>
<EventDate>6/16/2010 5:37:44 PM</EventDate>
<VehicleName>Izuzu-700768</VehicleName>
<ID>51</ID>
<MessageText>Ignition On</MessageText>
<Latitude>43.032735</Latitude>
<Longitude>-89.523775</Longitude>
</Message>
<Message>
<EventDate>6/16/2010 5:37:44 PM</EventDate>
<VehicleName>Izuzu-700768</VehicleName>
<ID>0</ID>
<MessageText />
<Latitude>43.032735</Latitude>
<Longitude>-89.523775</Longitude>
</Message>
<Message>
<EventDate>5/3/2010 7:35:14 AM</EventDate>
<VehicleName>test</VehicleName>
<ID>3</ID>
<MessageText>JOB START:555</MessageText>
<Latitude>43.064257</Latitude>
<Longitude>-89.507307</Longitude>
</Message>
</Messages>
<Error>
<ID>0</ID>
<Description />
</Error>
</GetMessagesResult>
---------------------------------------------------------