Skip to Main Content

Database Software

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!

ora-03113 error with XMLTABLE inside subquery or view

Andy MackieMay 11 2012 — edited May 14 2012
I'm getting ORA-03113 error if I use a result of XMLTABLE inside a subquery of another query (whether XMLTABLE is inline, or from a view). Code below to reproduce this - vastly simplified and now rather meaningless - but produces same error. Has anyone saw this error re. XMLTABLE or know of metalink bugs on this ? I couldn't find anything. I'm having to use deprecated table(xmlsequence) instead, which doesn't get this error.


--DROP TABLE TEST
CREATE TABLE TEST(ID number(10), CUST_REF varchar2(50 char), XMLDATA XMLTYPE);

INSERT INTO TEST(ID, CUST_REF, XMLDATA) VALUES (1, 'XYZ',
XMLTYPE('<?xml version="1.0" encoding="utf-16"?>
<TESTXML
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:ABC-123:TESTXML">
<collections>
<TRANSACTION_COLLECTION>
<TRANSACTION>
<RECORD_ID>1</RECORD_ID>
<TRANSACTION_ID>7791786</TRANSACTION_ID>
<AMOUNT>335</AMOUNT>
<TYPE>I</TYPE>
<DC>DR</DC>
</TRANSACTION>
</TRANSACTION_COLLECTION>
</collections>
</TESTXML>'));

COMMIT;

CREATE VIEW TEST_XMLVIEW
AS
SELECT
ID,
CUST_REF,
xmltbl.RECORD_ID,
xmltbl.TRANSACTION_ID,
xmltbl.AMOUNT,
xmltbl.TYPE,
xmltbl.DC
FROM TEST,
XMLTable(XMLNamespaces(DEFAULT 'urn:ABC-123:TESTXML'),
'/TESTXML/collections/TRANSACTION_COLLECTION/TRANSACTION' PASSING TEST.XMLDATA
COLUMNS
"RECORD_ID" number(10) PATH 'RECORD_ID',
"TRANSACTION_ID" VARCHAR(200 CHAR) PATH 'TRANSACTION_ID',
"DC" VARCHAR(200 CHAR) PATH 'DC',
"TYPE" VARCHAR(200 CHAR) PATH 'TYPE',
"AMOUNT" NUMBER(38,8) PATH 'AMOUNT')
AS xmltbl;


WITH SUM_AMOUNTS (ID, CUST_REF, SUM_1, SUM_2, SUM_3)
AS
(SELECT ID, CUST_REF, SUM(AMOUNT) AS SUM_1, SUM(AMOUNT) AS SUM_2, SUM(AMOUNT) + SUM(AMOUNT) AS SUM_3
FROM TEST_XMLVIEW
GROUP BY ID, CUST_REF)
select
ID,
CUST_REF,
SUM_1,
SUM_2,
SUM_3
from SUM_AMOUNTS;


Version Details:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for 64-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
This post has been answered by odie_63 on May 12 2012
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 11 2012
Added on May 11 2012
5 comments
1,405 views