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.