I am using DBD::Oracle. I was on version 1.12, then I installed version
1.14, with the same result.
This is Oracle 9.2.0.
I have this select statement that works fine from SQL*Plus:
select XMLElement("Sequences",
XMLElement("Sequence",
XMLATTRIBUTES ( b.local_name AS "ic-acckey",
b.mol_type AS "molecule",
n.seq_name AS "title")))
from gcg_bioseq b, gcg_annot_seq_name a, gcg_seq_name n
where
b.local_name = 'K00306' and
b.seq_status = 'D' and
b.seq_oid = a.seq_oid and
a.seq_name_oid = n.seq_name_oid and
n.name_type = 'LOCUS'
When I run it via DBI/DBD I get this (trace level 2):
DBI 1.32-nothread dispatch trace level set to 2
Note: perl is running without the recommended perl -w option
-> prepare for DBD::Oracle::db (DBI::db=HASH(0x1b2314)~0x122bec '
select
XMLElement("Sequences",
XMLElement("Sequence",
XMLATTRIBUTES ( b.local_name AS "ic-acckey",
b.mol_type AS "molecule",
n.seq_name AS "title")))
from gcg_bioseq b, gcg_annot_seq_name a, gcg_seq_name n
where
b.local_name = 'K00306' and
b.seq_status = 'D' and
b.seq_oid = a.seq_oid and
...')
Field 1 has an Oracle type (108) which is not explicitly supported
fbh 1:
'XMLELEMENT("SEQUENCES",XMLELEMENT("SEQUENCE",XMLATTRIBUTES(B.LOCAL_NAMEAS"IC-ACCKEY",B.MOL_TYPEAS"MOLECULE",N.SEQ_NAMEAS"TITLE")))'
NULLable, otype 108->108, dbsize 2000/2000, p0.s0
-> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x112a54)~INNER)
<- DESTROY= undef at testora9i_honk2.pl line 81
!! ERROR: -1 'ERROR OCIDefineObject call needed but not implemented
yet'
<- prepare= undef at testora9i_honk2.pl line 81
-> $DBI::errstr (&) FETCH from lasth=HASH
>> DBD::Oracle::db::errstr
<- $DBI::errstr= 'ERROR OCIDefineObject call needed but not
implemented yet'
-- DBI::END
-> disconnect_all for DBD::Oracle::dr
(DBI::dr=HASH(0x1e4bd4)~0x2532d0)
<- disconnect_all= '' at DBI.pm line 575
-> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x122bec)~INNER)
<- DESTROY= undef during global destruction
Oracle sid is s920qa02
Connect done
calling prepare on select
XMLElement("Sequences",
XMLElement("Sequence",
XMLATTRIBUTES ( b.local_name AS "ic-acckey",
b.mol_type AS "molecule",
n.seq_name AS "title")))
from gcg_bioseq b, gcg_annot_seq_name a, gcg_seq_name n
where
b.local_name = 'K00306' and
b.seq_status = 'D' and
b.seq_oid = a.seq_oid and
a.seq_name_oid = n.seq_name_oid and
n.name_type = 'LOCUS'
Error: prepare failed
at line 56, error: ERROR OCIDefineObject call needed but not
implemented yet
Is there any other workaround for this than wrapping this up in a PL/SQL
function?
Thanks,
Susan