Perl DBD ORA_XMLTYPE binding causes Segmentation fault

grump-
grump- used Ask the Experts™
on
Hello all,
I hope someone can tell me how to troubleshoot or solve my Perl problem I am having. There is an Oracle stored procedure(that I have no control over) that I am attempting to access using Perl (use DBI; use DBD::Oracle qw(:ora_types);). The segmentation fault comes on the binding to the first XMLTYPE in the stored procedure. I am able to run the procedure successfully in Oracle SQL Developer so I believe the DB end is working (maybe). I could post all the code if necessary, but it is typical code I see everywhere else on the web. Here is the portion of code that has the trouble:
print "bind 6\n";
eval{
  $query->bind_param_inout(6, \$rtn1, 20000, { ora_type => ORA_XMLTYPE } );
};
if($@){
  print "\$@ = " . Dumper($@);
}
print "bind 7\n";
$query->bind_param_inout(7, \$rtn2, 20000, { ora_type => ORA_XMLTYPE } );

Open in new window



It will print the 'bind 6' and then just fail. When I run it while debugging, is when I see the segmentation fault. The eval catch is never executed not to mention the rest.

Any experience on this issue would be much appreciated!
Thanks
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Author

Commented:
Oh, I am tracing too. Here is where the bind_param_inout happens. The trace ends at 'dbd_rebind_ph_xml' and that's it:
-> bind_param_inout for DBD::Oracle::st (DBI::st=HASH(0x191e108)~0x189eb20 6 SCALAR(0x17fd668) 20000 HASH(0x189eb14))
dbd_bind_ph(): bind :p6 <== undef (type 0 (DEFAULT (varchar)), inout 0x17fd668, maxlen 20000, attribs: HASH(0x189eb14))
dbd_rebind_ph() (1): rebinding :p6 as NULL (not-utf8, ftype 108 (ORA_XMLTYPE or SQLT_NTY), csid 0, csform 0, inout 1)
 in  dbd_rebind_ph_xml

Open in new window

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial