Question

m-takeno on Tue, 22 Jan 2013 06:42:23


お世話になります。SQL Serverに組み込まれているSSISの機能を確認したいと思い
Microsoft® SQL Server® 2012 Evaluation(180日評価版)をインストールしました。
SSISの接続マネージャからORACLEにODP.NETにて接続を試みると
「プロバイダーの初期化中にエラーが発生したため接続テストに失敗しました。」のメッセージがでてエラーとなります。
SSISのODP.NETで接続時は、DataSource,UserID,Passwordを指定して接続テストを実行。
SQLPLUSを使用して接続は問題なくできる状態です。
(SSISとSQLPLUSでは、同じDataSource,UserID,Passwordを指定)
正常に接続するための方法をご教授願えないでしょうか。
[環境]
  ・Windows7 Professional  32ビット
         (SQLServerをインストール。SSISにてORACLEサーバに接続を試行)
                   SQLServerはMicrosoft® SQL Server® 2012 Evaluation(180日評価版)を使用
          ODAC 11.2 Release 5 and Oracle Developer Tools for Visual Studio (11.2.0.3.20)をインストール
  ・WindowsServer2008 standard(Oracle 10g)  32ビット
[その他]
  ODBC DATA PROVIDERにて接続を試みると、別サーバのSQLServerへは接続できますが、
   ORACLEへの接続は下記注1のメッセージがでてエラーとなります。
  注1・・・「プロバイダーの初期化中にエラーが発生したため接続テストに失敗しました。
       ERROR [IM003] 指定されたドライバーはシステム エラー 
       1114: ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。
       (Oracle in OraClient11g_home1,D:\oracle\product\11.2.0\client_1\SQORA32.DLL)
         のため読み込めませんでした。」

以上、宜しくお願い致します。


Sponsored



Replies

kagehiens on Sun, 03 Mar 2013 02:10:55


初めまして。

Oracleへの接続では私も悩まされたことがあるのでお力になれればいいと思い、コメントします。

まず、ODBCを使用して接続するのであれば、
 ・すでにDSNは作成済みでしょうか?
 ・エラーが表示されたのは接続マネージャの追加時でしょうか?もしくは別のタイミングでしょうか?
の2点が気になるところです。

また、SSISであれば、ODBCドライバのほか、
Oracle Provider for OLE DBも利用できると思いますが、(パフォーマンス的にはOLE DBドライバの方が有利だと思われます)
そちらで試した場合はどうなりますでしょうか?

余談ですが、Oracleへの接続でトラブルが起きやすいのは64bit⇔32bitのときが一番多いです。(いたるところ罠だらけです・・・)
が、m-takenoさんの環境は32bitで統一されているようなので、割とすんなりいくと思います。
(ちなみにSSISはDTExcecというクライアント側ツールが全て実行するので、ドライバなどもクライアント側のものであり、わかりやすいです。)

なお、SSISからOracleを利用する際の流れとしては、
 1. Oracleドライバの導入
 2. TNS設定
 3. DSNの作成(ODBCの場合)
 4. Business Intelligence Development Studio 上で新規プロジェクト作成
 5. 接続マネージャを作成(ODBCの場合はADO.NET接続、OLE DBの場合はOLE DB接続)
 6. データフローコンポーネントの作成(典型的なデータ転送処理の場合)
 7. データフローコンポーネント内でデータソースの作成(ODBCの場合はADO.NETソース、OLE DBの場合はOLE DBソース)
という風になると思います。

以上、参考になれば幸いです。