Почему делает DBI Perl, жалуются на “неудавшийся: ОШИБОЧНЫЙ OCIEnvNlsCreate”, когда я пытаюсь подключить к Oracle 11 г?

Я получаю следующую ошибку при соединении с базой данных Oracle 11g с помощью простого сценария Perl:

 failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc. at

Сценарий следующие:

#!/usr/local/bin/perl

use strict;
use DBI;

if ($#ARGV < 3) {
print "Usage: perl testDbAccess.pl dataBaseUser dataBasePassword SID dataBasePort\n";
exit 0;
}
my ($user, $pwd, $sid, $port) = @ARGV;

my $host = `hostname`;
my $dbh;
my $sth;
my $dbname = "dbi:Oracle:HOST=$host;SID=$sid;PORT=$port";

openDbConnection();
closeDbConnection();

sub openDbConnection() {
        $dbh = DBI->connect ($dbname, $user ,$pwd , { RaiseError => 1}) || die "Database connection not made: $DBI::errstr";
}

sub closeDbConnection() {
        #$sth->finish();
        $dbh->disconnect();
}

Кто-либо замеченный эта проблема прежде?

5
задан brian d foy 28 May 2010 в 12:48
поделиться

1 ответ

Проверьте конфигурацию клиента Oracle (включая, как говорится в сообщении, ORACLE_HOME), проверьте права доступа к файлам и т. Д. Маловероятно, что DBI как таковой имеет какое-либо отношение к проблеме, и я точно знаю, что DBD :: Oracle совместим с библиотеками 11g (по крайней мере, InstantClient 11g).

6
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: