21

Oracle サーバーで MS SQL Server から openrowset を実行しようとしています。

次のコマンドを実行すると:

select * from
OPENROWSET('OraOLEDB.Oracle','srv';'user';'pass', 
'select * from table')

次のエラーが発生します

Msg 7302, Level 16, State 1, Line 1
Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "(null)".

で openrowset を使用する方法を誰か教えてもらえますOraOLEDB.Oracleか?

MS SQL Server と Oracle OLEDB ドライバーの 64 ビット バージョンを使用しています。

編集

MS SQL Server 2008 x64を搭載したWindows 7 x64Windows Server 2008 x64を実行している 2 台のマシンでこれを試しました。どちらも同じエラーメッセージを表示しました。

4

8 に答える 8

53

SQL Server Enterprise Manager で を開き、プロバイダーを\Server Objects\Linked Servers\Providers右クリックしてプロパティを選択し、オプションを確認します。リンク サーバーを再作成し、もう一度テストします。OraOLEDB.Oracle"Allow inprocess"

SQL Server Management Studio にアクセスできない場合は、次のクエリを実行することもできます。

EXEC master.dbo.sp_MSset_oledb_prop N'OraOLEDB.Oracle', N'AllowInProcess', 1
于 2013-01-24T12:28:19.350 に答える