Jean-Louis,

I would check with Oracle Support. This sounds like a known issue on the database.

Martin

LEROY Jean-Louis wrote:

Hello,

the following program:

        use strict;
        use DBI;

        my $dbh = DBI->connect(qw( dbi:Oracle: T3_JLL T3_JLL ), { PrintError
=> 0 });
        $dbh->do(q{DROP TABLE Person});
        $dbh->disconnect;

        $dbh = DBI->connect(qw( dbi:Oracle: T3_JLL T3_JLL ), { PrintError =>
1 });
        $dbh->do(q{CREATE TABLE Person (id INTEGER PRIMARY KEY, type
INTEGER, name VARCHAR(255))});
        $dbh->do(q{INSERT INTO Person ( id, type, name ) VALUES ( 1, 1,
'Homer' )});

        my $sth = $dbh->prepare('SELECT Person.name, Person.type FROM Person
WHERE Person.id = ?') or die;
        $sth->execute(1);
        DBI::dump_results($sth);

... generates an internal error:

        DBD::Oracle::st execute failed: ORA-00600: internal error code,
arguments: [kpofdr-long], [], [], [], [], [], [], [] (DBD ERROR: error
possibly near   <*> indicator at char 37 in 'SELECT Person.name, Person.type
FROM <*>Person WHERE Person.id = :p1') [for Statement "SELECT Person.name,
Person.type     FROM Person WHERE Person.id = ?" with ParamValues: :p1=1] at
/home/jll/t.pl line 16, <MYSELF> line 19.
        DBD::Oracle::st fetch failed: ERROR no statement executing (perhaps
you need to call execute first) [for Statement "SELECT Person.name,
Person.type     FROM Person WHERE Person.id = ?" with ParamValues: :p1=1] at
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/DBI.pm line 986,
<MYSELF> line 19.

        0 rows (-1: ERROR no statement executing (perhaps you need to call
execute first))

Oddly this error seems related to the presence of a primary key. If I change
the CREATE TABLE line into:

        $dbh->do(q{CREATE TABLE Person (id INTEGER, type INTEGER, name
VARCHAR(255))});

...everything works as expected. Also, it works if I comment out the INSERT.

Has anybody seen this before?

I use DBD::Oracle 1.16, Oracle Enterprise Manager 10g an dperl 5.8.5 on a
Fedora Core 3.

Jean-Louis Leroy

____

This message and any files transmitted with it are legally privileged and 
intended for the sole use of the individual(s) or entity to whom they are 
addressed. If you are not the intended recipient, please notify the sender by 
reply and delete the message and any attachments from your system. Any 
unauthorised use or disclosure of the content of this message is strictly 
prohibited and may be unlawful.

Nothing in this e-mail message amounts to a contractual or legal commitment on 
the part of EUROCONTROL unless it is confirmed by appropriately signed hard 
copy.

Any views expressed in this message are those of the sender.






Reply via email to