http://www.perlmonks.org?node_id=1012941


in reply to Re: DBD Oracle ORA_XMLTYPE Seg Fault
in thread DBD Oracle ORA_XMLTYPE Seg Fault

First I want to thank you for the working response. Now, in testing, we are finding that when the data set is large, either the xmltype or the getclobval method fail. Indeed looking around the internet other folks have run into a 4k limitation. Any help on how to get around this one?

Replies are listed 'Best First'.
Re^3: DBD Oracle ORA_XMLTYPE Seg Fault
by runrig (Abbot) on May 10, 2013 at 23:11 UTC
    I just tested selecting an XMLTYPE column over 32K in size and it worked ok. But for inserting, there seems to be a 4K limit, and even with sqlldr I'm having trouble loading really large documents. Since you need to bind an in/out parameter, maybe you hit that limit? Perhaps create a PL/SQL block that returns a cursor for selecting your data, and then select from that cursor?

    Update: Selecting an XMLTYPE column over about 50K gives me an ORA-12152 (~50K) or ORA-0600 (> ~64K) error on $dbh->disconnect...but it does select the data. Weird...

Re^3: DBD Oracle ORA_XMLTYPE Seg Fault
by runrig (Abbot) on Jan 11, 2013 at 18:55 UTC
    Not sure, maybe binding ':out' as a LOB (making sure LongReadLen attribute is sufficiently large)? Or abusing dbms_output to output the value?
      I don't believe the 4k limitation is in Perl. Its in the xmltype and/or the getclobval method. Read the last entry here: https://forums.oracle.com/forums/thread.jspa?messageID=1696372 . So I think I need another work around in the query. One that continues to hide the xmltype from the Perl client.