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

Reply via email to