将 oracle 客户端从 win7/32 迁移到 win10/64
Posted
技术标签:
【中文标题】将 oracle 客户端从 win7/32 迁移到 win10/64【英文标题】:moving oracle client from win7/32 to 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;
【问题讨论】:
【参考方案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 即时客户端软件包以上是关于将 oracle 客户端从 win7/32 迁移到 win10/64的主要内容,如果未能解决你的问题,请参考以下文章
各路高手,win7 32位按照oracle时报错。在网上查了很多信息都未果。大家指点指点!
我可以使用 imp/exp 工具将数据库从 Oracle 9 迁移到 Oracle 10
怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL