perl - 当我尝试连接到 Oracle 11g 时,为什么 Perl 的 DBI 会提示 "failed: ERROR OCIEnvNlsCreate"?

标签 perl oracle dbi

我使用简单的 Perl 脚本连接到 Oracle 11g 数据库时出现以下错误:

 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();
}

有人见过这个问题吗?

最佳答案

检查您的 Oracle 客户端配置(包括消息所说的 ORACLE_HOME),检查文件权限等。 DBI 本身不太可能与该问题有任何关系,而且我知道 DBD::Oracle 与11g 库(至少是 11g InstantClient)。

关于perl - 当我尝试连接到 Oracle 11g 时,为什么 Perl 的 DBI 会提示 "failed: ERROR OCIEnvNlsCreate"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2914320/

相关文章:

Perl Mojolicious 模型

perl - 实时反引号输出处理

perl - 如何在 Perl 中以函数式风格编码?

sql - 在 Oracle 中创建一个 View 来显示每个部门的平均工资?

sql - 如何在包含字符串值的列上使用聚合函数?

sql-server - 使用 DBI 连接到 SQL Server

perl - 在 Perl Dancer 模块中记录 die 和警告

sql - 如何在 Oracle SQL 中使用 REGEX 检索数据库列行中的特定字符位置?

mysql - 如何使用 Perl 根据 id 使用不同的值更新每个数据库记录?

mysql - Perl MySQL 全文搜索