1

我无法使用 OpenQuery 通过 C# 代码查询链接的 Oracle 服务器,但是我可以使用 4 部分名称或 OpenQuery 从 Sql Server 本身查询服务器。使用代码时出现以下错误:

System.Data.SqlClient.SqlException:链接服务器“LinkedServer”的 OLE DB 提供程序“OraOLEDB.Oracle”报告错误。提供商没有提供有关该错误的任何信息。无法为链接服务器“LinkedServer”初始化 OLE DB 提供程序“OraOLEDB.Oracle”的数据源对象。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream , BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data。

我的代码如下所示:

    testCommand = "SELECT * FROM OPENQUERY(LinkedServer,'SELECT * FROM HR.REGION')";

     SqlCommand cmdTest = new SqlCommand();

    cmdTest.Connection = conn1;
            cmdTest.CommandText = testCommand;
            cmdTest.CommandType = System.Data.CommandType.Text;

    conn1.Open();

    SqlDataReader testdr = cmdTest.ExecuteReader();

    string values = null;

            if (testdr.HasRows == true)
            {
                while (testdr.Read())
                {
                    values = values + testdr["REGION_FIELD"].ToString();

                }
            }
4

0 回答 0