On Mar 6, 2017, at 5:59 PM, Gowtham <shiningstargau...@gmail.com<mailto:shiningstargau...@gmail.com>> wrote:
Hi Ron, I did that. I have two scenarios here. Both the scenarios have same ($dbh,$dbname,$user,$auth,$attr) values. Scenario 1: executed code with ORACLE_HOME set to correct value. Scenario 2: executed code with incorrect/wrong ORACLE_HOME env variable. - So my code returns undef in the second scenario. I'm trying to understand the execution part inside the subroutine _login to establish the dependency of ORACLE_HOME on DBI connection. $ORACLE_HOME is critical to any API involving oracle; this is not a function of _login or exclusive to DBI. If it’s set incorrectly or undef, you will always get a failure like this. Without more details on your particular application, it’s difficult to determine why your script is failing, but most common is that the perl module is executed via some sort of process spawning a new shell and the environment in that shell is not properly set. What you need to ensure that the environment variable $ORACLE_HOME is set in the process that is failing; either explicitly in the perl script via $ENV{‘ORACLE_HOME’}= 'path to oracle_home’; or by ensuring that the defaults for the process include that variable. In Apache you can set it via a SetEnv statement: SetEnv ORACLE_HOME /path/to/oracle/home Be aware that more than just ORACLE_HOME is needed, you also need to set LD_LIBRARY_PATH at a minimum, and perhaps TNS_ADMIN , ORACLE_BASE and ORACLE_SID. -- Bruce Johnson University of Arizona College of Pharmacy Information Technology Group Institutions do not have opinions, merely customs