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