Charles Jardine wrote: > I have encountered a problem with the 'extended' support for > objects in DBD::Oracle. Specifically, if $dbh->{ora_objects} > is true, any attempt to fetch a nested table of objects > causes perl to crash with a segmentation fault. > > Versions: > OS: SLES10 SP2 (64bit) > Oracle: 10.2.0.4 (64bit) > Perl: 5.10.0 (64bit) > DBI: 1.609 > DBD::Oracle: 1.23 > > The following SQL*Plus script to set up the demonstration table is based > on an example in the DBD::Oracle pod: > > CREATE OR REPLACE TYPE GRADELIST AS TABLE OF NUMBER; > / > > CREATE OR REPLACE TYPE STUDENT AS OBJECT( > NAME VARCHAR2(60), > SOME_GRADES GRADELIST); > / > > CREATE OR REPLACE TYPE STUDENTS_T AS TABLE OF STUDENT; > / > > CREATE TABLE GROUPS( GRP_ID NUMBER(4), > GRP_NAME VARCHAR2(10), > STUDENTS STUDENTS_T) > NESTED TABLE STUDENTS STORE AS GROUP_STUDENTS_TAB > (NESTED TABLE SOME_GRADES STORE AS GROUP_STUDENT_GRADES_TAB); > > INSERT INTO GROUPS (GRP_ID, GRP_NAME, STUDENTS) VALUES ( > 1234, > 'ABCD', > STUDENTS_T(STUDENT('A.N. Other', GRADELIST(5,6,7))) > ); > > The following perl script segfaults on the call of fetch: > > #!/usr/local/bin/perl -w > > use strict; > use DBI; > > my $dbh = DBI->connect('dbi:Oracle:', <credentials>, {RaiseError=>1}); > > $dbh->{ora_objects} = 1; > > my $sth = $dbh->prepare("select * from groups"); $sth->execute; > > print("about to fetch\n"); > > $sth->fetch; > > print("fetched\n"); > > $sth->finish; $dbh->disconnect; > >
Same for me but I am using an Oracle client older than the Oracle server - are you? Have you tried using a client that matches the server? I cannot tell if you are running to a local or remote oracle. In the past when I have got "OCI-21500: internal error code, arguments: [kocgpn129]" errors it has been down to attempting to use a new feature in Oracle with an old client. Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com