我正在尝试连接到我的perl应用程序中的远程oracle数据库。 运行应用程序时,会出现以下错误:
"Connection Error: ERROR OCINlsEnvironmentVariableGet(OCI_NLS_CHARSET_ID)"
我获得了Oracle Instant Client并将其置于本地,然后将Oracle Home env设置为它,因为我没有安装Oracle客户端。 我的代码如下:
BEGIN {
$ENV{NLS_LANG} = "AMERICAN_AMERICA.UTF8";
$ENV{OCI_NLS_CHARSET_ID} = "AMERICAN_AMERICA.UTF8";
$ENV{ORACLE_HOME} = #The path to the instant Oracle client";
}
#Connect to database
my $DBHandle = DBI->connect(
"dbi:Oraclehost=$host;sid=$sid;port=$port",
$userName,
$passWord
) or die "Connection Error: $DBI::errstr\n";
我在Windows Server 2008上使用ActiveStat perl,ORACLE 10g
答案 0 :(得分:1)
我能找到根本原因。我使用了Oracle Instant Client lite(instantclient-basiclite-win64-10.2.0.5),它只包含二进制文件。然后我尝试了Oracle Instant Client - SDK,它只包含lib。 我发现我需要合并两个以使我的代码工作,我使用SDK作为主客户端,在其中创建一个bin目录然后将lite客户端放入其中......它的工作原理!