Hi Charles,

Try setting your environment variables in a BEGIN block, like this:

#!/usr/bin/perl -w
use strict;
BEGIN {
  $ENV{'NLS_LANG} = 'american';
  $ENV{ORACLE_HOME} = 'D:\Oracle\ora92';
}

### the rest of your code goes here ###

I haven't done Perl/DBI/Oracle in quite a while, but that's what I
remember doing.  I think that must be spelled out either in the DBI
perldocs or the DBD::Oracle perldocs - to use a BEGIN block to set
environment variables that is ;-)

Hardy Merrill

>>> "Charles Lawrence" <[EMAIL PROTECTED]> 01/18/05 2:54 PM
>>>
Gentlemen:

 

I have struggled with this problem for a while now with no success at
finding the answer, so I am asking for help from anyone who might know
the solution.

 

I am using Windows XP, ActiveState Perl 5.8.4, Oracle 9.2.0.1.0 client
and server, DBI (1.45) and DBD-Oracle (1.16) installed as ppm packages
from ftp.esoftmatic.com/outgoing/DBI/5.8.4/ 

 

I do not have a problem connecting to the remote database using the
Oracle Enterprise Manager program from my PC.  However, I am getting
the
following error when I try to connect to the database from perl:

 

DBI connect('host=10.1.10.61;sid=ssdb','system',...) failed: ERROR
OCIInitialize. Check ORACLE_HOME and NLS settings etc. at
D:\PerlScripts\ora1.

pl line 17

Unable to connect to database: ERROR OCIInitialize. Check ORACLE_HOME
and NLS settings etc.

 

My perl script is:

 

#!/usr/bin/perl

 

use strict;

use DBI;

use DBD::Oracle qw(:ora_session_modes); # ORA_SYSDBA & ORA_SYSOPER
constants

 

my ($dsn,$usr,$pwd);

my ($dbh);

 

$ENV{NLS_LANG} = 'american';

$ENV{ORACLE_HOME} = 'D:\Oracle\ora92';

 

# connect to remote Oracle DB

$dsn='DBI:Oracle:host=10.1.10.61;sid=ssdb';

$usr='system';

$pwd='manager';

$dbh = DBI->connect($dsn,$usr,$pwd) || die "Unable to connect to
database: $DBI::errstr\n";

 

I have used NLS_LANG settings of 'american_america.we8iso8859p1' and
'american_america.utf8' to no avail.  I know the ORACLE_HOME to be
correct.  I cannot figure out why I am getting the OCIInitialize
error.
Any help will be greatly appreciated.  Thanks in advance.

 

Charles Lawrence

[EMAIL PROTECTED] 

 

Reply via email to