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]