in reply to Re^4: DBI Out parameters
in thread DBI Out parameters

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.