Hey folks,

On our test server (Solaris 10) we have numerous test and train databases at 10g.

We now have an 11g database set up on the server aswell.

Does anyone have any experience with perl DBI (DBD::Oracle)?

Some of our test interface scripts are not running on this new 11g database with problems at the DBI connect part of the script. I have written a little test connect script to try and get working

Code:
#!/usr/local/bin/perl -w

#use  strict;

use DBI;




open(OUTP,">test_out.txt") || die("Could not open the test file\n");

my $dbh = DBI->connect("DBI:Oracle:testdb","user", "pass")
  or die "error occured   $DBI::errstr\n";

$sql = "select table_name from user_tables  ";
   $sth = $dbh->prepare( $sql );
    $sth->execute or die "Can't execute SQL Statement: $DBI::errstr\n";

   while ( @row = $sth->fetchrow_array() ) {
      print OUTP "@row\n";
  }


#   $sth->finish;
   $dbh->disconnect();
   print "Disconnected from Oracle\n";


exit;
I can successfully run this against my 10g test database but get errors trying to run against 11g train database.

Error as follows

DBI connect('mydb','user',...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME env var, NLS settings, permissions, etc. at ./dbconnectIFSTEST.pl line 12
error occured ERROR OCIEnvNlsCreate. Check ORACLE_HOME env var, NLS settings, permissions, etc.

10g Environment (which works) looks like this
Code:
oracle@testserver$ env
_=/usr/bin/env
LC_MONETARY=en_GB.ISO8859-1
LC_TIME=en_GB.ISO8859-1
SQLPATH=/home/oracle
SSH_TTY=/dev/pts/10
PATH=/ifs/app/oracle/test/10.2.0/bin:/ifs/app/oracle/test/10.2.0/lib32:/ifs/app/oracle/test/10.2.0/lib:/usr/ccs/bin:/usr/local/bin:/usr/bin:/usr/sbin:/usr/openwin/bin
ORACLE_BASE=/ifs/app/oracle
EDITOR=vi
LOGNAME=oracle
LIBPATH=/ifs/app/oracle/test/10.2.0/lib32:/ifs/app/oracle/test/10.2.0/lib
MAIL=/usr/mail/oracle
ORACLE_SID=IFSTEST
USER=oracle
LC_MESSAGES=C
TNS_ADMIN=/var/opt/oracle
LC_CTYPE=en_GB.ISO8859-1
SHELL=/usr/bin/ksh
ORACLE_TERM=vt220
HOME=/home/oracle
LC_COLLATE=en_GB.ISO8859-1
LC_NUMERIC=en_GB.ISO8859-1
SSH_CONNECTION=*****************
SSH_CLIENT=********************
LD_LIBRARY_PATH=/ifs/app/oracle/test/10.2.0/lib32:/ifs/app/oracle/test/10.2.0/lib
TERM=vt220
ORACLE_HOME=/ifs/app/oracle/test/10.2.0
PWD=/home/oracle/phil/IFSTRAIN
TZ=GB
11g environment (not working with DBI) looks like this

Code:
oracle@testserver$ env
_=/usr/bin/env
LC_MONETARY=en_GB.ISO8859-1
LC_TIME=en_GB.ISO8859-1
SQLPATH=/home/oracle
SSH_TTY=/dev/pts/9
PATH=/usr/ccs/bin:/usr/local/bin:/usr/bin:/usr/sbin:/usr/openwin/bin:/ifs/app/oracle/general/product/11.2.0/dbhome_1/bin:
ORACLE_BASE=/ifs/app/oracle
EDITOR=vi
LOGNAME=oracle
MAIL=/usr/mail/oracle
ORACLE_SID=IFSTRAIN
USER=oracle
LC_MESSAGES=C
TNS_ADMIN=/var/opt/oracle
LC_CTYPE=en_GB.ISO8859-1
SHELL=/usr/bin/ksh
ORACLE_TERM=vt220
HOME=/home/oracle
LC_COLLATE=en_GB.ISO8859-1
LC_NUMERIC=en_GB.ISO8859-1
SSH_CONNECTION=***********************
SSH_CLIENT=******************
LD_LIBRARY_PATH=/usr/lib:/usr/ucblib:/ifs/app/oracle/general/product/11.2.0/dbhome_1/lib
TERM=vt220
ORACLE_HOME=/ifs/app/oracle/general/product/11.2.0/dbhome_1
PWD=/home/oracle/phil/IFSTRAIN
TZ=GB
Do i have to reinstall DBD::Oracle within my 11g environment to get it to work?
Could this affect the numerous other test systems on this server that are using perl to connect to their oracle databases?

Thanks
Phil