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

Reply via email to