none
Oracle Instant Client ODBC接続でのリンクサーバの設定時のエラーについて RRS feed

  • 質問

  •  

    SQL Server  2005 Express で Oracle のリンクサーバを設定し、OPENQUERY実行時にエラーがでます。

     

    エラーメッセージの内容

    リンク サーバー "Ora10gLink2" の OLE DB プロバイダ "MSDASQL" から、メッセージ "指定されたドライバはシステム エラー  127 (Oracle in instantclient10_2) のため読み込めませんでした。" が返されました。
    メッセージ 7303、レベル 16、状態 1、行 1
    リンク サーバー "Ora10gLink2" の OLE DB プロバイダ "MSDASQL" のデータ ソース オブジェクトを初期化できません。

    Oracleへの接続へはOracleのInstantClient10.2.0をインストールています。

     

    ODBCのシステムDSN作成時の接続テストはうまくいきました。

    SQLPLUSでも接続、データの抽出ができました。

    MS ACCESSで作成したシステムDSNでリンクテーブルも問題なく作成できました。

    うまくいかないのは、SQL Server  2005 Express です。

     

    リンクサーバの設定は以下の通り。

    リンクサーバ名:Ora10gLink2

    製品名:Oracle

    データソース:作成したシステムDSN

    リモートログインのユーザーIDおよびパスワード設定

     

     

    よろしくお願いします。

     

    2008年2月21日 11:11

回答

  • 既に時間がたっているので、解決済みかもしれませんが、一応気がついたことを。

     

    リンクサーバに使用するプロバイダは、通常DLLで提供されているので、SQL Serverのプロセスが読み込む必要がありますが、このときに「InProcess許可」がそのプロバイダに対して設定していないと、読み込めません。普通MSDASQLは、許可されていると思うのですが、確認してみてはいかがでしょうか。

     

    Code Snippet
    master.dbo.sp_MSset_oledb_prop N'MSDASQL'

     

     

    2番目のカラムが1になっていないと、読み込めないはずです。設定するなら以下のコードを実行します。

     

    Code Snippet
    master.dbo.sp_MSset_oledb_prop N'MSDASQL' , N'AllowInProcess', 1

     

     

    1になっているということであれば、SQL Serverの実行アカウントが、ODBCドライバとかOracleの設定ファイルとかが権限の関係で読めないのではないかと思います。

     

    2008年3月19日 5:28

すべての返信

  • 既に時間がたっているので、解決済みかもしれませんが、一応気がついたことを。

     

    リンクサーバに使用するプロバイダは、通常DLLで提供されているので、SQL Serverのプロセスが読み込む必要がありますが、このときに「InProcess許可」がそのプロバイダに対して設定していないと、読み込めません。普通MSDASQLは、許可されていると思うのですが、確認してみてはいかがでしょうか。

     

    Code Snippet
    master.dbo.sp_MSset_oledb_prop N'MSDASQL'

     

     

    2番目のカラムが1になっていないと、読み込めないはずです。設定するなら以下のコードを実行します。

     

    Code Snippet
    master.dbo.sp_MSset_oledb_prop N'MSDASQL' , N'AllowInProcess', 1

     

     

    1になっているということであれば、SQL Serverの実行アカウントが、ODBCドライバとかOracleの設定ファイルとかが権限の関係で読めないのではないかと思います。

     

    2008年3月19日 5:28
  • こんにちは。中川俊輔 です。

     

    yakkenさん、回答ありがとうございます。

     

    princetontonさん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?

    有用な情報と思われたため、yakkenさんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    princetontonさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年3月28日 2:22