Solved

Perl DBD ORA_XMLTYPE binding causes Segmentation fault

Posted on 2012-12-21
2
482 Views
Last Modified: 2013-01-17
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
0
Comment
Question by:grump-
  • 2
2 Comments
 

Author Comment

by:grump-
ID: 38713935
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

0
 

Accepted Solution

by:
grump- earned 0 total points
ID: 38788664
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: http://www.e-e.com/A_8429.html Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
Configuring and using Oracle Database Gateway for ODBC Introduction First, a brief summary of what a Database Gateway is.  A Gateway is a set of driver agents and configurations that allow an Oracle database to communicate with other platforms…
Via a live example show how to connect to RMAN, make basic configuration settings changes and then take a backup of a demo database
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question