Environment Perl script trying to query Oracle 11g database:

   FreeBSD 9.3-STABLE

   DBI 1.633

   oracle8-client 0.2.0

   DBD::Oracle 1.19

I have no trouble connecting with the Oracle database.  And I do
recover data when I use the temporary workaround described below.

I have a query/prepare setup outside a foreach loop where I execute()
the prepared query something like this, only more complex:

   my $query = "select column from table where column = ?";

   my $sth = $dbh->prepare ($query);

   foreach ()
   {
        $sth->execute($value);
   }

I was getting invalid string ORA-0911 errors at the question mark.
I then replaced the question mark with a number (555) and made the
execute() call just "$sth->execute();"

This worked.  But I really needed to bind to the $value variable
in the foreach loop.

In reading the DBI POD it said for Oracle the "?" is turned into
":p1" (in this case).  So I replaced the question mark with :p1.

The prepare statement no longer generated an error, instead the
execute statement generated the error:

   DBD::Oracle::st execute failed: called with 1 bind variables
   when 0 are needed [for Statement ... ] at script.pl line xxx.

Can any one help me figure out this confusing situation?  BTW, I
have been using Perl for twenty years and DBI for perhaps ten,
and I have used this query/prepare/bind/execute methodology in
the past with success.  Something is different, but I don't know
what to look for.

Regards,

web...

-- 

 /"\   ASCII RIBBON          / William Bulley
 \ /   CAMPAIGN AGAINST     / 
  X    HTML E-MAIL AND     / E-MAIL: w...@umich.edu
 / \   LISTSERV POSTINGS  /

72 characters width template ----------------------------------------->|

Reply via email to