You are right you can do that - I didn't know that. I use functions mostly in SQL and procedures if there is more than one parameter to return but as you say the following does work:
use DBI; use strict; my $h = DBI->connect('dbi:Oracle:xxx','xxx','xxx'); eval {$h->do(q{drop function fred});}; my $sql = <<'EOT'; create function fred(a OUT integer) return integer as begin a := 1; return (a + 1); end; EOT $h->do($sql); my $s = $h->prepare(q{begin ? := fred(?); end;}); my $in = 1; $s->bind_param_inout(2, \$in, 100); my $res; $s->bind_param_inout(1, \$res, 100); $s->execute; print "fred=$res, a=$in\n";
outputs fred=2, a=1
However, I still stand by the my comment that if the parameter is an input parameter it is probably better to bind it with bind_param and not bind_param_inout.
In reply to Re^5: DBI Out parameters
by mje
in thread DBI Out parameters
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |