extract xml too many cause out of memory
757067Mar 1 2010 — edited Mar 4 2010Hi,
I'm using Oracle 9.2x in windows xp (with 2g memory).
I wrote a procedure to extract xml which is xmltyp in a table column, then insert extracted values into another table.
if there were less than 10,000 rows/xml, then things went fine; but whenever hit the #13610 row/xml, then oracle gave me error:
ERROR at line 1:
ORA-03113: end-of-file on communication channel
I noticed from the widnows task manager, that Oracle instance kept allocating memory (hit to 1.4xg when terminating the execution of the procedure).
There were two usage of extract functions in the procedure, like
value := row.xml.extract('//.../text()', 'xmlns=...').getStringVal();
timestring := row.xml.extract('//.../text()', 'xmlns=...').getStringVal();
I'm wondering how to free memory right after per insert? I've tried apply commit per insert, set row.xml := null; row := null per insert, set to use max sga, etc; however none of them freed the DOM xml momory.
Can anyone have idea?
Thanks
--
John
Toronto