I got similar results combining DBI 1.15 with DBD::Oracle 1.06 under WinNT
4.0 SP4, Oracle 8.1.5.0.0, and Perl 5.6.0.
Please run this script and send the results to the list:
#!perl -w
use DBI;
use DBD::Oracle qw(ORA_RSET);
use strict;
$| = 1;
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
my $dbh = DBI->connect('', $dbuser, '', 'Oracle')
or die "Connect failed, $DBI::errstr\n";
my $cur_query = q{
SELECT object_name, owner FROM all_objects
WHERE object_name LIKE :p1 and ROWNUM <= 3
};
my $cur1 = 42;
$dbh -> trace( 10, 'rset_test-10.txt' );
my $parent = $dbh->prepare(qq{
BEGIN OPEN :cur1 FOR $cur_query; END;
}) or die "Prepare failed, $DBI::errstr\n";
$parent->bind_param(":p1", "V%");
$parent->bind_param_inout(":cur1", \$cur1, 0, { ora_type => ORA_RSET } );
$parent->execute();
===================
My trace results are:
DBI::db=HASH(0x2cdd554) trace level set to 10 in DBI 1.15-nothread
-> prepare for DBD::Oracle::db (DBI::db=HASH(0x2cdd590)~0x2cdd554 '
BEGIN OPEN :cur1 FOR
SELECT object_name, owner FROM all_objects
WHERE object_name LIKE :p1 and ROWNUM <= 3
; END;
')
dbih_setup_handle(DBI::st=HASH(0x2cdd68c)=>DBI::st=HASH(0x2cdd6ec),
DBD::Oracle::st, 2cdd698, Null!)
dbih_make_com(DBI::db=HASH(0x2cdd554), DBD::Oracle::st, 204)
dbih_setup_attrib(DBI::st=HASH(0x2cdd6ec), Err, DBI::db=HASH(0x2cdd554))
SCALAR(0x30f319c) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2cdd6ec), State,
DBI::db=HASH(0x2cdd554)) SCALAR(0x30fb438) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2cdd6ec), Errstr,
DBI::db=HASH(0x2cdd554)) SCALAR(0x30f316c) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2cdd6ec), Handlers,
DBI::db=HASH(0x2cdd554)) ARRAY(0x2cdd560) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2cdd6ec), Debug,
DBI::db=HASH(0x2cdd554)) 10 (already defined)
dbd_preparse scanned 2 distinct placeholders
OCIHandleAlloc(031150D0,02CE15FC,4,0,00000000)=SUCCESS
OCIStmtPrepare(0312B58C,031230A0,'
BEGIN OPEN :cur1 FOR
SELECT object_name, owner FROM all_objects
WHERE object_name LIKE :p1 and ROWNUM <= 3
; END;
',136,1,0)=SUCCESS
OCIAttrGet(0312B58C,4,02CE1600,00000000,24,031230A0)=SUCCESS
dbd_st_prepare'd sql BEGIN
dbd_describe skipped for BEGIN
<- prepare= DBI::st=HASH(0x2cdd68c) at C:\tmp\rset_test.pl line 20.
-> bind_param for DBD::Oracle::st (DBI::st=HASH(0x2cdd68c)~0x2cdd6ec
':p1' 'V%')
bind :p1 <== 'V%' (type 0)
bind :p1 <== 'V%' (size 2/3/0, ptype 4, otype 1)
bind :p1 <== 'V%' (size 2/2, otype 1, indp 0)
OCIBindByName(0312B58C,02D77E5C,031230A0,":p1",3,02D77F90,2,1,02D77E6E,00000
000,02D77E6C,0,00000000,2)=SUCCESS
OCIBindDynamic(0312B274,031230A0,02D77E40,2317A050,02D77E40,2317A1A4)=SUCCES
S
bind :p1 done
<- bind_param= 1 at C:\tmp\rset_test.pl line 23.
-> bind_param_inout for DBD::Oracle::st
(DBI::st=HASH(0x2cdd68c)~0x2cdd6ec ':cur1' SCALAR(0x310c0dc) 0
HASH(0x2cda954))
bind :cur1 <== 42 (type 0, inout 0x310c0dc, maxlen 0, attribs:
HASH(0x2cda954))
bind :cur1 done for ftype 116
<- bind_param_inout= 1 at C:\tmp\rset_test.pl line 24.
-> execute for DBD::Oracle::st (DBI::st=HASH(0x2cdd68c)~0x2cdd6ec)
dbd_st_execute BEGIN (out1, lob0)...
bind :cur1 - allocating new sth...
OCIHandleAlloc(031150D0,02D77DE0,4,0,00000000)=SUCCESS
OCIBindByName(0312B58C,02D77DDC,031230A0,":cur1",5,02D77DE0,0,116,00000000,0
0000000,00000000,0,00000000,0)=SUCCESS
>> FETCH DISPATCH (DBI::db=HASH(0x2cdd554) rc2/3 @2 g0 a2d70350)
at c:/perl/site/5.6.0/lib/DBI.pm line 748.
<- FETCH= 'DBD::Oracle::db' ('ImplementorClass' from cache) at
c:/perl/site/5.6.0/lib/DBI.pm line 748.
===================
--
Mac :})
** I normally forward private database questions to the DBI mail lists. **
Give a hobbit a fish and he'll eat fish for a day.
Give a hobbit a ring and he'll eat fish for an age.
----- Original Message -----
From: "netguy37" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 02, 2001 4:47 PM
Subject: DBD::Oracle 'make test' fails (t/plsql 55-63)
> I am having difficulties testing DBD. I've searched the web and the
various
> DBI/DBD lists, but can't find a solution.
>
> First, the environment:
> OS: Compaq Tru64 5.1
> Oracle: 8.1.6 (Enterprise Server)
> Perl: 5.6.0
> DBI: 1.15
> DBD: 1.06
> . . .
> t/plsql.............dubious
> Test returned status 0 (wstat 139, 0x8b)
> test program seems to have generated a core
> DIED. FAILED tests 55-63
> Failed 9/63 tests, 85.71% okay
> t/reauth............skipped test on this platform
> Failed Test Status Wstat Total Fail Failed List of failed
> --------------------------------------------------------------------------
--
> ---
> t/plsql.t 0 139 63 9 14.29% 55-63