hu.darren wrote:
> Hi,
>    I have installed the DBD::ODBC from the latest svn.
> 
>   when I want execute a procedure like this:
> 
> ________
> my $whoami = "";
> my $csr = $dbh->prepare(q{
>         BEGIN
>             :whoami := PLSQL_EXAMPLE_DARREN.FUNC_NP;
>         END;
>   });

I presume since that starts PLSQL you are using Oracle.
Which Oracle ODBC driver are you using?

What does the procedure look like?

Are you sure this is a procedure - procedures don't usually return
values (especially in oracle).

The ODBC syntax to call a procedure is:

{call proc_name(?,?...)}

You are better using that.

Having said procedures don't usually return values MS SQL Server can
return an integer in which case you can use:

{? = call procname(?,?,...)}


> $csr->bind_param_inout(":whoami", \$whoami, 20);
> $csr->execute;
> print "Your database user name is $whoami\n";
> $dbh->disconnect;
> ----------
> 
> but I failed with:
> 
> ____________
> /usr/bin/perl -w /home/darren/perl/dbitest.pl
> Can't bind unknown placeholder ':whoami' at /home/darren/perl/dbitest.pl
> line 90.
> -------------
> 
> I have both used $dbh->{odbc_ignore_named_placeholders} = 1 and
> $dbh->{odbc_ignore_named_placeholders} = 1

These are the same aren't they!

> Any suggestions?

Why would you set odbc_ignore_named_placeholders - you are using named
placeholders so don't set it.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to