ora-03113 error with XMLTABLE inside subquery or view
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