A little slow on this one and I apologize for that.

Just closing things out for 1.28 version of DBD::Oracle and noticed this one
hanging about.

So I though I would give it a few tests

I checked 1.24 and it fails but it seems to be fixed in 1.62 and in trunk

So I will check this one off my list for 1.28

Cheers
John Scoles



On Wed, Aug 4, 2010 at 2:27 PM, LK <lok...@gmail.com> wrote:

> In the process of moving from centos 4 to a centos 5 machine one
> script stopped working. I distilled it down to this problem :
>
>
> #! /usr/bin/perl -w
> use strict;
> use DBI;
>
> my $dbh = DBI->connect("dbi:Oracle:host=SSSS;sid=SSSS", 'XXXX',
> 'XXXX',
>                       {RaiseError => 1,
>                        AutoCommit => 0,
>                        LongReadLen => 5000
>                        }
>                       ) || die "Database connection not made:
> $DBI::errstr";
>
> my $q = qq/
>  SELECT
>        (2+3),
>        cursor(select 2+3 from dual),
>        cursor(select 3+3 from dual)
>        FROM table where rownum < 10
> /;
>
> my $sth = $dbh->prepare($q);
> $sth->execute();
> while ( my @d = $sth->fetchrow_array ) {
>          print join(" " , @d) . "\t";
>          while ( my @g = $d[1]->fetchrow_array ) {
>                  print join(" " ,@g) . "\t";
>          }
>           while ( my @g = $d[2]->fetchrow_array ) {
>                  print join(" " ,@g ). "\t";
>          }
>          print "\n";
> }
>
> no problem in sqlplus for this query in either machine.
>
> On the server with DBI 1.58 , DBD::Oracle 1.19 and oracle instant
> client 10.1 it works fine.
>
> On the server with DBI 1.611 , DBD::Oracle 1.24b and oracle instant
> client 11.1 it returns nothing, with no errors.
>
> Use  of DBI_TRACE returns nothing I can work with, it just stops on
> the newer server:
>
>    -> prepare for DBD::Oracle::db
> (DBI::db=HASH(0x1be48c80)~0x1be48c40 '
>  SELECT
>        (2+3),
>        cursor(select 2+3 from dual),
>        cursor(select 3+3 from dual)
>        FROM table where rownum < 10
> ') thr#1bb1a010
>        dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1)
>        dbd_describe SELECT (EXPLICIT, lb 5000)...
> Described col  1: dbtype 2(NVARCHAR2), scale 0, prec 0, nullok 1, name
> (2+3)
>                  : dbsize 2, char_used 0, char_size 0, csid 0, csform
> 0(0), disize 171
>        fbh 1: '(2+3)'  NULLable, otype   2->  5, dbsize 2/172, p0.s0
> Described col  2: dbtype 116(SQLT_RSET  OCI 8 cursor variable), scale
> 0, prec 0, nullok 1, name CURSOR(SELECT2+3FROMDUAL)
>                  : dbsize 8, char_used 0, char_size 0, csid 0, csform
> 0(0), disize 8
>        fbh 2: 'CURSOR(SELECT2+3FROMDUAL)'      NULLable, otype 116-
> >116, dbsize 8/8, p0.s0
> Described col  3: dbtype 116(SQLT_RSET  OCI 8 cursor variable), scale
> 0, prec 0, nullok 1, name CURSOR(SELECT3+3FROMDUAL)
>                  : dbsize 8, char_used 0, char_size 0, csid 0, csform
> 0(0), disize 8
>        fbh 3: 'CURSOR(SELECT3+3FROMDUAL)'      NULLable, otype 116-
> >116, dbsize 8/8, p0.s0
>        cache settings DB Handle RowCacheSize=0,Statement Handle
> RowCacheSize=0, OCI_ATTR_PREFETCH_ROWS=339,
> OCI_ATTR_PREFETCH_MEMORY=0, Rows per Fetch=339, Multiple Row Fetch=On
>        dbd_describe'd 3 columns (row bytes: 18 max, 20 est avg,
> cache: 0)
>    <- prepare= DBI::st=HASH(0x1be48ee0) at trek_cursor_query.pl line
> 33
>    -> execute for DBD::Oracle::st
> (DBI::st=HASH(0x1be48ee0)~0x1be48e20) thr#1bb1a010
>   dbd_st_execute SELECT (out0, lob0)...
> Statement Execute Mode is 0 (DEFAULT)
>        rs_array_init:imp_sth->rs_array_size=2, rs_array_idx=0,
> prefetch_rows=0, rs_array_status=SUCCESS
>        dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
>    <- execute= '0E0' at trek_cursor_query.pl line 34
>    -> fetchrow_array for DBD::Oracle::st
> (DBI::st=HASH(0x1be48ee0)~0x1be48e20) thr#1bb1a010
>        dbd_st_fetch 3 fields...
>
>
>
> Removing one of the cursor statements makes it work on both machines!
> I am out of ideas.
>
> Any ideas are most appreciated!
>
> Thanks,
> LK
>
>
>
>
>
>
>
>

--
>From the Pythian family to yours, Happy Holidays and all the best in 2011!

Reply via email to