Hi All,
I am probably trying to do something that cannot be done (in this
particular way atleast), but here goes:
Table t consists of 2 columns:
c1 number
c2 CLOB
Stored Proc (in a package) looks like:
PACKAGE BODY LIST_HELP IS
FUNCTION FRETCUR (qparam in T.C1%TYPE)
RETURN LIST_HELP.QCURSOR
is
c_pac LIST_HELP.QCURSOR;
begin
open c_pac for
select *
from t
where c1 = qparam;
return c_pac;
close c_pac;
end; --- there is more but it deals with another example/issue
Snip of Perl code:
my $func = $dbh->prepare(q{
begin
? := LIST_HELP.FRETCUR(?);
end;
}) or db_error("P");
$func->bind_param_inout(1, \$rv, 0, {ora_type => ORA_RSET});
$func->bind_param(2, '1', 5);
$func->execute or db_error("E");
@row = $rv->fetchrow_array;
for(@row) {
print$i++ . " $_\n";
}
$re1 = ref($row[1]);
$re2 = ${$row[1]};
print"ref part: $re1\nderefed part $re2\n";
End Snip
Output:
0 1 #
$row[0] holds 1
1 OCILobLocatorPtr=SCALAR(0x1ddab58) # $row[1] holds ?
ref part: OCILobLocatorPtr # result of taking
the ref
derefed part 82544828 # result of
dereferencing the ref
Question: (thanks for staying with me...)
What is:
OCILobLocatorPtr=SCALAR(0x1ddab58)
I had hoped to gain access to the CLOB through it. Is this possible?
TIA
David