[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-modperl
Subject:    Apache::DBI Oracle LOB problem
From:       Steven Schmidt <schmidt () cshl ! org>
Date:       2001-07-30 20:57:09
[Download RAW message or body]

The following problem came up in porting EnsEMBL to Oracle:

With

Apache 1.3.19, mod_perl 1.2.5
Apache::DBI 0.88
DBI 1.19, DBD::Oracle 1.07
Oracle 8.1.5
Perl 5.6.0
Solaris 5.8 on sparc

The query
   select * from dna where id=?
sometimes fails.

Level 9 DBI trace:
    OCIStmtExecute(62c0ec,6363d0,62c310,0,0,0,0,0)=SUCCESS
    OCIAttrGet(6363d0,4,ffbeebea,0,10,62c310)=SUCCESS
        dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
        <- execute= '0E0' at /usr/local/apache/perl/foo.pl line 34
        >> fetchrow_array DISPATCH (DBI::st=HASH(0x381d1c) rc1/1 @1 g1
a0) at /usr/local/apache/perl/foo.pl line 35
        -> fetchrow_array for DBD::Oracle::st
(DBI::st=HASH(0x381d1c)~0x384ecc)
        dbd_st_fetch 4 fields...
    OCIStmtFetch(6363d0,62c310,1,2,0)=SUCCESS
        dbih_setup_fbav for 4 fields => 0x384c8c
        dbd_st_fetch 4 fields SUCCESS
            0 (rc=0): '484'
    OCILobGetLength(62c0ec,62c310,62a4d4,ffbee9dc)=SUCCESS

OCILobRead(62c0ec,62c310,62a4d4,ffbee9d8,1,782808,136351,0,0,0,1)=STILL_EXECUTING

           OCILobRead field 3 STILL_EXECUTING: LOBlen 136351,
LongReadLen 500000, BufLen 136351, Got 136351
    OCIErrorGet(62c310,1,"<NULL>",ffbee4cc,"",1024,2)=NO_DATA
        ERROR EVENT -3123 ' (DBD STILL_EXECUTING: OCILobRead)' on
DBI::st=HASH(0x384ecc)
            1 (rc=0): undef
            2 (rc=0): '136351'
            3 (rc=0): '07-JUL-01'
        !! ERROR: -3123 ' (DBD STILL_EXECUTING: OCILobRead)'
        <- fetchrow_array= ( ) [0 items] row1 at
/usr/local/apache/perl/foo.pl line 35
        >> DESTROY     DISPATCH (DBI::st=HASH(0x381d1c) rc1/1 @1 g0 a0)
at /usr/local/apache/perl/foo.pl line 31
        <> DESTROY ignored for outer handle DBI::st=HASH(0x381d1c)
(inner DBI::st=HASH(0x384ecc))
        >> DESTROY     DISPATCH (DBI::st=HASH(0x384ecc) rc1/1 @1 g0 a0)
at /usr/local/apache/perl/foo.pl line 31
        -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x384ecc)~INNER)
    OCIStmtFetch(6363d0,62c310,0,2,0)=SUCCESS
    OCIHandleFree(6363d0,4)=SUCCESS
    OCIDescriptorFree(62a4d4,50)
        <- DESTROY= undef at /usr/local/apache/perl/foo.pl line 31
        dbih_clearcom (h 0x381d1c, com 0x5f2e10):
           FLAGS 0x111: COMSET Warn PrintError
           TYPE 3
           PARENT DBI::db=HASH(0x60d990)
           KIDS 0 (0 active)
           IMP_DATA undef in 'DBD::Oracle::st'
           LongReadLen 500000
           NUM_OF_FIELDS 4
           NUM_OF_PARAMS 1
        dbih_clearcom 0x381d1c (com 0x5f2e10, type 3) done.



Here's the table:
 TABLE dna (
  id number(10) NOT NULL,
  orcl_sequence clob NOT NULL,
  length number(11) NOT NULL,
  created date  NOT NULL,
  PRIMARY KEY (id)
);



If Apache::DBI is not used, then there is no problem.

Other queries don't seem to fail.

Has anyone had similar problems?

Fuller information on request

--
Steven Schmidt
snp.cshl.org     www.gramene.org
Cold Spring Harbor Laboratory
516-367-6977

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic