1

OpenQuery を使用して C# コードからリンクされた Oracle サーバーにクエリを実行できませんが、4 部構成の名前または OpenQuery を使用して、Sql サーバー自体からサーバーにクエリを実行できます。コードを使用すると、次のエラーが発生します。

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