使用64位Oracle客户端从32位进程连接Oracle DB

时间:2012-08-27 15:51:37

标签: c# oracle operating-system oracleclient

我有应用程序在32位模式下运行。它尝试使用Oracle Client连接oracle DB。 Oracle客户端以64位运行。

string connectionString = @"Data Source=" + oracleDBName + ";User id=" + oracleDBUserId +";Password=" + oracleDBPwd +";";
            OracleConnection con = new OracleConnection(connectionString);
            try
            {
                con.Open();
                if (con != null)
                {
                    con.Open();
                }
                return true;
            }
            catch (OracleException)
            {
                return false;
            }

我在调用

时遇到targetinvocationexception
  

con.Open();

原因,由于应用程序以32位模式运行,因此无法加载64位dll。

我无法更改应用程序模式。我也无法安装32位Oracle客户端。如何解决这个问题

先谢谢

1 个答案:

答案 0 :(得分:1)

用于.NET的Oracle驱动程序“需要Oracle的本机”客户端。 (这不是Java,瘦客户端存在)

尝试即时客户端,不需要安装。 http://www.oracle.com/technetwork/topics/winsoft-085727.html

此外,您可以尝试ODBC .NET驱动程序,但配置ODBC DSN以使用Microsoft的Oracle驱动程序(大多数Windows安装都有用于oracle的microsoft的odbc驱动程序开箱即用)。 再次:
1)对于32位应用程序,您需要32位版本的ODBC
2)oracle即时客户端应该在搜索路径中可用

在Windows 64bit中,有32个版本的32位和64位应用程序的ODBC管理面板。要运行32b版本,请执行C:\ Windows \ SysWOW64 \ odbcad32.exe。