Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Loading XML Data into Oracle(with Namespace)

Prashanth AnantharamanMar 9 2011 — edited Mar 23 2011
Am a Newbee for XML to Oracle thing so beg yr pardon if my Q'n seems a very "entry level" thing....I searched wherever I could and thought give a try here :-)

My Requirment is to read the repeating attributes from this XML String

1. CREATE GLOBAL TEMPORARY TABLE TEMP_MQ_TABLE OF SYS.XMLTYPE

2.
Insert into TEMP_MQ_TABLE values
(XMLTYPE (
'<mes:QueryPartItemRevisionResponseMessage xmlns:mes="http://xml.namespaces.test.com/im/dsp/services/managepartitem/message" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<par:PartItem xmlns:par="http://xml.namespaces.test.com/im/dsp/cdm/data/partitem">
<par:PartItemAlternateIdentifier>
<par:AlternateIdentifierSourceId>XYZ</par:AlternateIdentifierSourceId>
<par:PartItemAlternateIdTypeCode>Type Code1</par:PartItemAlternateIdTypeCode>
<par:PartItemAlternateIdVal/>
</par:PartItemAlternateIdentifier>
<par:PartItemAlternateIdentifier>
<par:AlternateIdentifierSourceId>XYZ</par:AlternateIdentifierSourceId>
<par:PartItemAlternateIdTypeCode>Type Code2</par:PartItemAlternateIdTypeCode>
<par:PartItemAlternateIdVal/>
</par:PartItemAlternateIdentifier>
<par:PartItemAlternateIdentifier>
<par:AlternateIdentifierSourceId>ABC</par:AlternateIdentifierSourceId>
<par:PartItemAlternateIdTypeCode>Type Code3</par:PartItemAlternateIdTypeCode>
<par:PartItemAlternateIdVal>00123456</par:PartItemAlternateIdVal>
</par:PartItemAlternateIdentifier>
</par:PartItem>
</mes:QueryPartItemRevisionResponseMessage>')
)

3. Now, I need to Query the Multiple Typecodes "PartItemAlternateIdTypeCode" and their Values "PartItemAlternateIdVal"

Select extractValue(value(stmt),'par:PartItemAlternateIdTypeCode') AttrType,
extractValue(value(val),'par:PartItemAlternateIdVal') AttrVal
from TEMP_MQ_TABLE i,
table(xmlsequence(extract(i.object_value,'/mes:QueryPartItemRevisionResponseMessage/par:PartItem/par:PartItemAlternateIdentifier'))) id,
table(xmlsequence(extract(value(id),'/par:PartItem/par:PartItemAlternateIdentifier/par:PartItemAlternateIdTypeCode'))) stmt,
table(xmlsequence(extract(value(id),'/par:PartItem/par:PartItemAlternateIdentifier/par:PartItemAlternateIdVal'))) val,
XMLTable(XMLNAMESPACES (
'http://xml.namespaces.test.com/im/dsp/services/managepartitem/message' AS "mes",
'http://schemas.xmlsoap.org/soap/envelope/' AS "env",
'http://xml.namespaces.test.com/im/dsp/cdm/data/partitem' AS "par"
),'/mes:QueryPartItemRevisionResponseMessage/par:PartItem/par:PartItemAlternateIdentifier' PASSING i.OBJECT_VALUE
COLUMNS
MCode VARCHAR2(25) PATH 'par:PartItemAlternateIdentifier/par:PartItemAlternateIdTypeCode',
MVal VARCHAR2(5) PATH 'par:PartItemAlternateIdentifier/par:PartItemAlternateIdVal')

When I run this Query, I get the error message

ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00601: Invalid token in: '/mes:QueryPartItemRevisionResponseMessage/par:PartItem/par:PartItemAlternateIdentifier'

Not sure what I am doing wrong. I get this error ONLY when have these NAMESPACES.

I am able to query when I donot have these Namespaces in my XML String

The Query I used in the later case is

Select extractValue(value(stmt),'PartItemAlternateIdTypeCode') AttrType,
extractValue(value(val),'PartItemAlternateIdVal') AttrVal
from XRX.TEMP_MQ_TABLE,
table(xmlsequence(extract(object_value,'/QueryPartItemRevisionResponseMessage/PartItemAlternateIdentifier'))) id,
table(xmlsequence(extract(value(id),'/PartItemAlternateIdentifier/PartItemAlternateIdTypeCode'))) stmt,
table(xmlsequence(extract(value(id),'/PartItemAlternateIdentifier/PartItemAlternateIdVal'))) val


Any input to crack this is highly appreciated

Thanks for your time
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 20 2011
Added on Mar 9 2011
2 comments
703 views