Greetings, I am encountering a strange problem with DBD-Oracle-1.12 with DBI-1.20, or DBI-1.32 on Solaris 8 with two different versions of Perl: 5.6.1 and 5.8.0 respectively.
I have created a background process that performs a few tasks, which include updating a remote oracle table used for reporting purposes. The process is simple, and the sql involved is simple. I have a subroutine that creates the database handle and returns it. Mind you, I am using strict subs and strict vars, but not strict refs. The gist: I return the database handle into the main loop (while (1)), where it will be created and destroyed at the beginning and end of each iteration, respectively. Within a foreach loop that is looping through a data-structure I've created, I pass the $dbh to another routine called sqlUpdate, which takes care of all of the database work. The sql I am trying to execute is no more than a simple "select column from tablename where column2 = ?" statement, which works fine if I execute it in the main program, but if the call is made nested elsewhere within the program (via subroutine), it returns the ORA-01747 error message regarding invalid table, name, or column. If I take all of the code in sqlUpdate() and just nest it within the foreach loop, instead of using a subroutine, the statements prepare and execute as expected. Otherwise, the statement is never prepared because the ORA-01747 error message is returned. I have to wonder, does Perl's gargabe collection munge up database handles in any way? thanks, Scott H. Neibarger SRA International, Inc. IRS ESM project 512-460-8717