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. > >