FYI, I've found another case of sqlplus not working with ORACLE_HOME
set. When running Makefile.PL with Instant Client 10.1 on Linux I get:
Using Oracle in /home/wez/oracle/instantclient10_1/
SP2-0642: SQL*Plus internal error state 2165, context 4294967295:0:0
Unable to proceed
The problem is reproducible outside of DBD::Oracle just with sqlplus.
The previous solution to unset ORACLE_HOME for the duration of running
sqlplus to get the client lib version does this:
if ($sqlplus_release =~ /SP2-0750/) {
my $x = $ENV{ORACLE_HOME};
delete $ENV{ORACLE_HOME};
$sqlplus_release = `$sqlplus_exe -S /nolog \[email protected] 2>&1`;
$ENV{ORACLE_HOME} = $x;
}
If needs to check for SP2-0642 as well and that fixes it:
if ($sqlplus_release =~ /(SP2-0750)|(SP2-0642)/) {
Hope this helps anyone else hitting this problem.
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com