简体   繁体   English

Oracle ODBC,64 位和 32 位,同名

[英]Oracle ODBC, 64bit and 32bit, same name

we upgraded a user to windows 10 and we are having issues configuring the ODBC connect with Oracle.我们将用户升级到 Windows 10,但在配置与 Oracle 的 ODBC 连接时遇到问题。

We got both the 64bit and 32bit drivers installed.我们安装了 64 位和 32 位驱动程序。 I know the OBDC for 32bit is syswow64 and 64bit is on the system32.我知道 32 位的 OBDC 是 syswow64,而 64 位在 system32 上。

I guess the user has two version of the same application.我猜用户有两个版本的同一个应用程序。 One uses the 64bit drivers and the other version uses the 32bit driver.一个使用 64 位驱动程序,另一个版本使用 32 位驱动程序。 They both use the same name inside the obdc connect.它们都在 obdc 连接中使用相同的名称。 When we try to add the 32bit connection it overwrites the 64bit connection.当我们尝试添加 32 位连接时,它会覆盖 64 位连接。 I'm guessing because its the same name.我猜是因为它的名字一样。

Is there a way to add two odbc connections with the same name, but one being a 32bit and the other being a 64bit?有没有办法添加两个同名的 odbc 连接,但一个是 32 位,另一个是 64 位?

The user say you have to map the two drivers together and something and about using the odac oracle install.用户说您必须将两个驱动程序映射在一起以及使用 odac oracle 安装。 When i installed i just uses the oracle client install as administrator.当我安装时,我只是以管理员身份使用 oracle 客户端安装。 The oracle version is 12.2 oracle版本是12.2

When I've had this issue, I've had to set up two versions of the driver and reference them independently.当我遇到这个问题时,我不得不设置两个版本的驱动程序并独立引用它们。 I'll have "Oracle32" and "Oracle64" and then reference the one the application calls for.我将拥有“Oracle32”和“Oracle64”,然后引用应用程序调用的那个。 I hope that helps!我希望这有帮助!

In earlier Oracle versions by default both drivers had the same name and the ORACLE_HOME were equal, eg OraClient11g_home1 .在早期的 Oracle 版本中,默认情况下两个驱动程序具有相同的名称并且 ORACLE_HOME 相等,例如OraClient11g_home1

Now in Oracle 12 or newer this changed by default to OraClient12Home1_32bit and OraClient12Home1现在在 Oracle 12 或更高版本中,默认情况下更改为OraClient12Home1_32bitOraClient12Home1

I assume you can simply rename the ODBC driver in registry, ie我假设您可以简单地在注册表中重命名 ODBC 驱动程序,即

HKLM\\SOFTWARE\\WOW6432Node\\ODBC\\ODBCINST.INI\\Oracle in OraClient12Home1_32bit rename key to Oracle in OraClient12Home HKLM\\SOFTWARE\\WOW6432Node\\ODBC\\ODBCINST.INI\\Oracle in OraClient12Home1_32bit将密钥重命名为Oracle in OraClient12Home

HKLM\\SOFTWARE\\WOW6432Node\\ODBC\\ODBCINST.INI\\ODBC Drivers\\Oracle in OraClient12Home1_32bit rename to Oracle in OraClient12Home1 HKLM\\SOFTWARE\\WOW6432Node\\ODBC\\ODBCINST.INI\\ODBC Drivers\\Oracle in OraClient12Home1_32bit重命名为Oracle in OraClient12Home1

As far as I know when you add a "User DSN" then the DSN is platform independent, ie tries to load the 32/64 bit driver depending on the invoking process.据我所知,当您添加“用户 DSN”时,DSN 是独立于平台的,即尝试根据调用过程加载 32/64 位驱动程序。 Thus, if you add the same DSN again, it will overwrite the existing one.因此,如果您再次添加相同的 DSN,它将覆盖现有的 DSN。 In order to determine the platform you have to add a "System DSN".为了确定平台,您必须添加“系统 DSN”。

This answer may help you for installation: BadImageFormatException.这个答案可以帮助您安装: BadImageFormatException。 This will occur when running in 64 bit mode with the 32 bit Oracle client components installed 在安装了 32 位 Oracle 客户端组件的情况下以 64 位模式运行时会发生这种情况

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM