Can you produce a small test script that shows ora_errno
not being reset but $DBD::err being reset?

Tim.

On Thu, Sep 11, 2003 at 02:59:27PM -0500, David Deemer wrote:
> Unfortunately this doesn't appear to have done the trick as I am seeing the
> same behavior as before. Do you have any other suggestions of things to try?
> 
> 
> Tim Bunce <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > Try chaning these two lines in Oraperl.pm
> >
> >  *Oraperl::ora_errno  = \$DBD::Oracle::err;
> >  *Oraperl::ora_errstr = \$DBD::Oracle::errstr;
> >
> > to:
> >  *Oraperl::ora_errno  = \$DBD::err;
> >  *Oraperl::ora_errstr = \$DBD::errstr;
> >
> > Tim.
> >
> > On Wed, Sep 10, 2003 at 02:00:28PM -0500, [EMAIL PROTECTED]
> wrote:
> > >
> > > I am running into a problem where it appears as though the $ora_errno
> > > variable isn't being properly reset after encountering an error. What I
> am
> > > experiencing is that once $ora_errno and $ora_errstr is set, it stays
> set
> > > upon additional calls to &ora_bind(). The following code produces the
> > > problem:
> > >
> > > <--- code --
> > >
> > > #!/usr/local/bin/perl
> > >
> > > use Oraperl;
> > >
> > > $DBH = &ora_login("", "userid/[EMAIL PROTECTED]");
> > >
> > >
> #---------------------------------------------------------------------------
> > > --------------
> > > #These values should be empty...
> > > print "Error variables before doing anything...\n";
> > > print "Error code: $ora_errno\n";
> > > print "Error text: $ora_errstr\n";
> > >
> > >
> #---------------------------------------------------------------------------
> > > ---------------
> > > #First query -- shouldn't produce an error and will return a result.
> > > $sql = "select log_data from log_os where os_id = :1";
> > > $csr = &ora_open($DBH, $sql);
> > > &ora_bind($csr, '1');
> > > ($value) = &ora_fetch($csr);
> > > print "\nValue from query 1: $value\n";
> > > print "\nError variables after basic query 1...\n";
> > > print "Error code: $ora_errno\n";
> > > print "Error text: $ora_errstr\n";
> > >
> > >
> #---------------------------------------------------------------------------
> > > ---------------
> > > #Second query -- will produce an error (ORA-01722: invalid number (DBD
> > > ERROR: OCIStmtExecute)) because
> > > #the bind variable isn't the correct type
> > > &ora_bind($csr, 'a');
> > > ($value) = &ora_fetch($csr);
> > > print "\nValue from query 2: $value\n";
> > > print "\nError variables after basic query 2...\n";
> > > print "Error code: $ora_errno\n";
> > > print "Error text: $ora_errstr\n";
> > >
> > >
> #---------------------------------------------------------------------------
> > > ---------------
> > > #Third attempt -- shouldn't produce an error and will return a result.
> The
> > > problem, however, is that $ora_errno and $ora_errstr
> > > #still has the previous error AFTER the successful &ora_bind() and
> > > $ora_fetch() call.
> > > &ora_bind($csr, 2);
> > > ($value) = &ora_fetch($csr);
> > > print "\nValue from query 3: $value\n";
> > > print "\nError variables after basic query 3...\n";
> > > print "Error code: $ora_errno\n";
> > > print "Error text: $ora_errstr\n";
> > >
> > > &ora_close($csr);
> > > print "Logoff of oracle....\n";
> > > &ora_logoff($DBH);
> > > print "\n";
> > >
> > > -- end code -->
> > >
> > > Is this possibly an installation/configuration problem? Something else?
> > >
> > > The various versions are:
> > > Oraperl emulation interface version 1.43
> > > DBD::Oracle 1.14 using OCI8 by Tim Bunce
> > > DBI 1.37 by Tim Bunce
> > > Perl v5.6.0 build for AIX
> > > AIX version 5
> > >
> > > Thank you for your help.
> > >
> > > ________________________________________
> > >
> > > This e-mail and any files transmitted with it are confidential and are
> > > intended solely for the use of the individual or entity to whom they
> > > are addressed. If you are not the intended recipient or the individual
> > > responsible for delivering the e-mail to the intended recipient, please
> > > be advised that you have received this e-mail in error and that any
> > > use, dissemination, forwarding, printing, or copying of this e-mail
> > > is strictly prohibited.
> > >
> > > If you have received this e-mail in error, please immediately notify
> > > the HealthPartners Support Center by telephone at (952) 967-6600.
> > > You will be reimbursed for reasonable costs incurred in notifying us.
> 
> 

Reply via email to