Subject: | Errors if a returned SYS_REFCURSOR is not opened |
This issue probably applies to a lot of DBD::Oracle release before 1.56
as well.
If you create this proc:
procedure p_n2(pcur OUT SYS_REFCURSOR) AS
begin
pcur := NULL;
end;
and then do:
my $s = $h->prepare(q/begin mypkg.p_n2(?); end;/);
$s->bind_param_inout(1, \my $cursor, 100, {ora_type => ORA_RSET});
$s->execute; # errors
it errors on an OCIAttrGet for PARAM_COUNT when attempting to
dbd_describe the new cursor. This means if you have a function or
procedure which does not always return an opened cursor you are stuck.
See dbi-dev list for a discussion of possible solutions.
Martin
--
Martin J. Evans
Wetherby, UK