From: Michael S. <msa...@pc...> - 2005-02-25 22:11:36
|
Hi Alan, This is a know Oracle bug. See this previous list posting for more information: http://sourceforge.net/mailarchive/message.php?msg_id=10486611 --Mike Alan Gingle wrote: > Hello, > > Recently a colleague brought a problem to my attention that involved the > DBD::Oracle client accessing a 10g database. He received the following > error message. > > ---------------------------------------------------------------- > > >>DBD::Oracle::st execute failed: ORA-00600: internal error >>code, arguments: [kpofdr-long], [], [], [], [], [], [], [] >>(DBD ERROR: error possibly near <*> indicator at char 19 in >>'select * from SRes.<*>TaxonName where name = :p1') [for >>Statement "select * from SRes.TaxonName where name = ?" with >>ParamValues: :p1='Trypanosoma cruzi'] at >>/var/local/GUS-Test/gus_home/lib/perl/GUS/ObjRelP/DbiRow.pm >>line 251. >>Failed executing: >> select * from SRes.TaxonName where name = ? >> >> with values 'Trypanosoma cruzi' >> errormsg: ORA-00600: internal error code, arguments: >>[kpofdr-long], [], [], [], [], [], [], [] (DBD ERROR: error >>possibly near <*> indicator at char 19 in 'select * from >>SRes.<*>TaxonName where name = :p1') >> > > > --------------------------------- > > A Google search turned up another example of this error message. > > ---------------------------------------------------------------- > > 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. > > ------------------------------------------------------------------- > > Has anyone experienced this problem and, if so, is a patch available that > will fix it? > > Thanks in advance, > > Alan > > > Alan R. Gingle (Ph.D.) > Senior Research Scientist > Center for Applied Genetic Technologies > University of Georgia > Athens, GA 30602, USA > > |