【问题标题】:Perl to Oracle Connection Error: ERROR OCINlsEnvironmentVariableGet(OCI_NLS_CHARSET_ID)perl到Oracle连接错误:错误ocinlsenvironmentvariffictget(oci_nls_charset_id)
【发布时间】:2015-02-13 20:41:12
【问题描述】:

我正在尝试在我的 perl 应用程序中连接到远程 oracle 数据库。 运行应用时出现如下错误:

"Connection Error: ERROR OCINlsEnvironmentVariableGet(OCI_NLS_CHARSET_ID)"

我得到了 Oracle Instant Client 并将其放置在本地,然后将 Oracle Home 环境设置为它,因为我没有在那里安装 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、ORACLE 10g 上使用 ActiveStat perl

【问题讨论】:

    标签: oracle perl remote-access


    【解决方案1】:

    我可以找到根本原因。我使用了仅包含二进制文件的 Oracle Instant Client lite (instantclient-basiclite-win64-10.2.0.5)。然后我尝试了 Oracle Instant Client - SDK,它只包含 lib。
    我发现我需要合并两者才能使我的代码正常工作,我使用 SDK 作为主客户端,在其中创建了一个 bin 目录,然后将 lite 客户端放入其中......它可以工作!

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多