【问题标题】:Connect to remote oracle database from .net application using c#使用c#从.net应用程序连接到远程oracle数据库
【发布时间】:2013-10-23 06:44:30
【问题描述】:

我正在开发一个使用远程“Oracle”数据库的应用程序。但我在连接到该数据库时遇到了问题。我已按照以下步骤连接到名为“rudresh”的“Oracle 数据库”,该数据库位于 IP 地址为“10.10.10.10”的服务器中(IP 地址错误,因为我无法共享确切的 IP)。

string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=rudresh)));User Id=system;Password=system_db;";
OracleConnection conn = new OracleConnection(oradb);
try
{
    conn.Open();
    string sql = "SELECT * FROM X96TUSER"; // C#
    OracleCommand cmd = new OracleCommand(sql, conn);
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader(); // C#
    dr.Read();
    string test = dr.GetString(0).ToString();
}

但实际上在使用 conn.Open() 打开连接时,它会抛出异常“System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本”,但我的 oracle 版本是 11g。请任何人告诉我我做错了什么或者我需要在服务器中做任何更改吗?

【问题讨论】:

    标签: c# .net asp.net-mvc entity-framework oracle11g


    【解决方案1】:

    我认为单独的 oracle 客户端不能独立工作。你下载了ODAC for Windows吗?安装时尝试为不同的安装指定不同的主文件夹,例如。 32bithome 或 64bithome。首先你可以尝试32bithome(即使在64bit机器上,如果它不起作用,然后尝试创建64bithome。)

    【讨论】:

      【解决方案2】:

      这可能是一个安全问题。检查您在 oracle 客户端文件夹中的权限。

      另一个可能的原因 (IIRC) 是使用错误的 oracle 客户端库(即在 32 位设置上使用 64 位版本)。

      (当然,这是假设您安装了 Oracle 客户端)

      【讨论】:

      • 嗨,我在本地安装了 oracle 客户端,但仍然遇到同样的错误。从 sql pluss 我可以连接到服务器数据库,但不能从应用程序。
      • 这听起来确实像一个安全问题。您可以访问 Oracle 客户端文件夹/您是否具有读取和执行权限?我还编辑了我的帖子并提出了进一步的建议。
      猜你喜欢
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 2018-09-29
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多