【问题标题】:SQLPLUS does not run using oracle instant client on win XP SP3SQLPLUS 不能在 win XP SP3 上使用 oracle 即时客户端运行
【发布时间】:2014-11-15 20:18:15
【问题描述】:

我有一台计算机作为 Oracle 数据库 11g Enterprise 的服务器。我想使用另一台计算机,一台运行 Windows XP SP3 的 PC,作为此服务器的客户端。

所以我决定在客户端 PC 上安装 Oracle Instant Client 11.2.0.4.0。我从 Oracle OTN 下载了压缩文件并将其解压缩到 c:\oracle\instantclient11.2.0.4.0 之类的文件夹中。然后我将此路径添加到系统路径变量中,并为变量名称创建了另一个名为 TNS_ADMIN 的系统变量,该变量名称与 Oracle Instant Client 的路径相同,c:\oracle\instantclient11.2.0.4.0

最后我从服务器 pc 复制了 tnsnames.ora。

所以我想尝试从 cmd.exe 运行 sqlplus 但错误是:

The procedure entry point OCIBindByName2 could not be located in the dynamic link library OCI.dll .

谁能帮帮我?

【问题讨论】:

  • 您的 Oracle 客户端软件版本可能是作为其他软件包的一部分安装的。试试这个:打开一个命令行窗口,C:、CD\、DIR /S OCI.DLL,看看这个 DLL 有多少个版本出现。祝你好运。
  • 是的,我在我的计算机中搜索了所有名为 OCI.DLL 的文件,是的,我发现另一个程序有 OCI.DLL 作为其中的一部分,那么如何处理这个冲突
  • 好吧,您可以将 OCI.DLL 的“其他”版本重命名为其他名称(例如 OCI_OTHER.DLL),看看这是否能解决问题。祝你好运!
  • 感谢您的解决方案 Mr.Bob

标签: oracle oracle11g sqlplus oracle-call-interface


【解决方案1】:

您是否也将 ORACLE_HOME 设置为 c:\oracle\instantclient11.2.0.4.0?

它应该在 11.2 中修复,尽管如 343666.1 中所述:

此对 ORACLE_HOME 的依赖问题已在 Bug: 5532439 中得到解决 OCI.DLL 必须适当地调用 SETDLLDIRECTORY。解决方法是调用 SetDllDirectory 基于 OCI.DLL 所在的位置。 此问题的解决方法:

  1. 进行即时客户端安装,例如安装到 C:\Oracle\EZClient102

  2. 将 ORACLE_HOME 环境变量设置为 Instant Client 的 ORACLE_HOME。

设置 ORACLE_HOME=C:\Oracle\EZClient102

那么 Instant Client DLL 应该从 C:\Oracle\EZClient102\bin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 2017-02-27
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多