【问题标题】:moving oracle client from win7/32 to win10/64将 oracle 客户端从 win7/32 迁移到 win10/64
【发布时间】:2021-03-18 13:26:56
【问题描述】:

我正在尝试在 Windows 10 上设置 Oracle 即时客户端 ODBC 驱动程序,因为我们正在将应用程序从 Windows 7 / 32 位移动到 Windows 10 / 64 位。 Windows 7 平台使用 Microsoft ODBC Driver for Oracle 工作,但该驱动程序已弃用。所以我正在尝试安装 64 位 Oracle 即时客户端。尝试连接时,我收到 TNS 适配器协议错误。我所做的每一次搜索都会引导我找到有关检查服务器的解决方案,但服务器在企业中运行良好。我没有安装实际的 Oracle 客户端,只安装了 ODBC 驱动程序。使用以下连接字符串

Driver={Oracle in instantclient_11_2};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL = TCP)(HOST = redacted)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID=redacted))); Uid=redacted;Pwd=redacted;

【问题讨论】:

    标签: oracle odbc


    【解决方案1】:

    您使用哪个客户端应用程序?

    如果这是一个 32 位应用程序(这似乎是因为在您使用仅存在于 32 位的 Microsoft ODBC 驱动程序之前),那么 ODBC 驱动程序也必须是 32 位的!你不能混合架构。

    当然,您可以在 64 位 Windows 上安装 32 位应用程序/驱动程序。

    ODBC 驱动程序需要和 Oracle 客户端,但是看起来您已经安装了它。

    从连接字符串中删除空格字符。

    如果您需要同时安装 32 位和 64 位 ODBC 驱动程序,请按照以下说明操作:BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed

    【讨论】:

    • 应用程序已经被软件供应商在 64 位架构上重新编译,因此我们必须迁移到 64 位 ODBC 驱动程序。
    【解决方案2】:

    我解决了这个问题。

    我为要使用的连接创建了一个 ODBC 数据源,并将连接字符串更改为

    dsn=redacted;uid=redacted;pwd=redacted
    

    还在c:\oracle\instantclient_19_10\network\admin\目录下安装了tnsnames.ora,并将TNS_ADMIN系统环境变量设置为c:\oracle\instantclient_19_10

    【讨论】:

    • 为了完整起见,请查看Connection Strings。 Microsoft ODBC 驱动程序使用SERVER=xyz 而Oracle ODBC 驱动程序使用DBQ=xyz 也许这是您问题的根本原因。
    • 谢谢。我没有使用该页面指定的 Oracle ODBC 驱动器。 oracle.com/database/technologies/instant-client/… 提供了一个 Oracle 即时客户端软件包
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    相关资源
    最近更新 更多