A while back when i was doing similar stuff i found a few perl-dbi-dbd:oracle code snippets
here that were very usefull to me. I believe the one you're after is similar to this :
use strict;
use DBI; my $dbh = DBI->connect(
'dbi:Oracle:orcl',
'jeffrey',
'jeffspassword',
{
RaiseError => 1,
AutoCommit => 0
}
) || die "Database connection not made: $DBI::errstr"; my $rv; #holds
+the return value from Oracle stored procedure
eval {
my $func = $dbh->prepare(q{
BEGIN
:rv := jwb_function(
parameter1_in => :parameter1
);
END;
});
$func->bind_param(":parameter1", 'Bunce');
$func->bind_param_inout(":rv", \$rv, 6);
$func->execute;
$dbh->commit;
}; if( $@ ) {
warn "Execution of stored procedure failed: $DBI::errstr\n";
$dbh->rollback;
} print "Execution of stored procedure returned $rv\n"; $dbh->disconne
+ct;
The binding of out vars happens here :
$func->bind_param_inout(":rv", \$rv, 6);. The DBI assigns the return value to a reference ($rv). If i remember correctly, '6' is the number of bytes to use or the datatype (not sure on this, check the docs)
Jorg
"Do or do not, there is no try" -- Yoda