On May 27, 2009, at 2:01 PM, Steven Schlansker wrote:


On May 23, 2009, at 1:34 AM, Martin J. Evans wrote:

Steven Schlansker wrote:
Some instant clients don't work properly with ORACLE_HOME set but NEED LD_LIBRARY_PATH pointing to the instant client directory where the shared libs are. I guess you didn't want this but I'd try unsetting ORACLE_HOME and setting LD_LIBRARY_PATH.

Ugh. This is extremely inconvenient. Is it possible to use -R (- rpath for GNU ld) instead, so I don't have to set LD_LIBRARY_PATH? Doing so seems to make the tests happier, but it will wreak havoc on the application using DBD::Oracle...

Is there any other solution?

I should have been more specific with this - hopefully some additional information will help. By setting LD_LIBRARY_PATH causes the tests to now fail with couldn't contact Oracle server, which is expected as I never set up the SID and whatnot.
I set LD_LIBRARY_PATH in my Perl script as such

BEGIN {
       $ENV{'ORACLE_HOME'} = '/remote/netdb/instantclient_10_2';
$ENV{'LD_LIBRARY_PATH'} = "$ENV{'LD_LIBRARY_PATH'}:/remote/ netdb/instantclient_10_2";
}

(Commention out ORACLE_HOME doesn't seem to affect anything either way)

However, I still get the error

Error while processing previous request: DBI connect('instance/ server','user',...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc. at /var/path/blah...

when doing the above environment modifications fixed it on the command line.

Any ideas?

Thanks again,
Steven

Reply via email to