Yep, I've tried not calling ->finish ... I get the same error.
As for the curref.pl example, I haven't actually run it -- I don't have the right sample tables, or the authority to create packages.
But the example defines this procedure:
PROCEDURE ref_cursor_close (curref IN cursor_ref)
IS
BEGIN
close curref;
END;
and calls it like this:
$sql = qq(
BEGIN
curref_test.ref_cursor_close(:curref);
END;
);
$sth = $dbh->prepare($sql);
$sth->bind_param(":curref", $curref, {ora_type => ORA_RSET});
$sth->execute;
which, as far as I can see, is exactly what I'm doing. NB: I've tried using both bind_param and bind_param_inout; the example uses bind_param, but the DBD::Oracle docs use bind_param_inout. Same error in both cases.
Can you see anything that's going on there that is effectively different in my code?
Thanks for your suggestions... :) |