質問者
[SSIS]参照コンポーネントのパラメータ

質問
-
SSIS2008に関する質問です。
{環境: WindowsServer2003(Standard x64 Edition)
Microsoft Visual Studio 2008
プロジェクトは、32bitのSSISランタイム}
sqlserverのデータを参照して、oracleデータをsqlserverへ移行するフローを考え ております。
まず「ADO.NET 変換元」でsqlserverのデータ[sbn_code]をSELECTし、
それを参照して、紐づくoracleデータ[st_data1等]を移行したいです。
そこで、データフロー内で「参照」コンポーネントを用いて、
[sbn_code]をパラメータとし、部分キャッシュによる方法を考えております。
しかし、「参照」コンポーネント内「詳細設定」のカスタムクエリに、
以下のSQL文を書き「パラメーター」ボタンを押下後、エラーが出てしまいます。
どなたか解決方法をご教授頂けますでしょうか。
・カスタムクエリのSQL文⇒ SELECT st_table.st_code,
st_table.st_data1,
st_table.st_data2
FROM st_table
WHERE st_table.st_code = ?
・「パラメーター」押下後のエラー⇒
System.Runtime.InteropServices.COMException (0x80040E51):
プロバイダがパラメータ情報を得られず SetParameterInfo が呼び出されていません。
場所 Microsoft.DataTransformationServices. Design.UnsafeNativeMethods.
ICommandWithParameters.GetParameterInfo(IntPtr& pcParams, IntPtr& prgParamInfo,IntPtr& ppNamesBuffer)
場所 Microsoft.DataTransformationServices. Design.DesignUtils.
GetQueryParameters(ConnectionManager connectionManager, String sqlStatement)
場所 Microsoft.DataTransformationServices. DataFlowUI.LookupAdvancedPage.
buttonParam_Click(Object sender, EventArgs e)
------------------------------------------------------------ ------------------------------ -------------------------
・「ADO.NET 変換元」内のSQL⇒ SELECT sbn_table.sbn_code
FROM sbn_table
・フロー作成時の警告(1箇所)⇒
[参照[16]]警告:OLE DBプロバイダーから列コードページ情報を取得できません。
コンポーネントで"DefaultCodePage"プロパティがサポートされている場合は、 そのプロパティのコードページを使用します。
現在の文字列のコードページの値が正しくない場合は、プロパティの値を変更してください。
コンポーネントでこのプロパティがサポートされていない場合は、コンポーネントのロケールIDのコードページを使用します。
・デバッグ後のエラー(3箇所)⇒
[参照[16]]エラー:SSISエラーコードDTS_E_OLEDBERROR。OLE DBエラーが発生しました。エラーコード: 0x80040E5D。
OLE DBレコードを使用できます。ソース:"Microsoft OLE DB Provider for Oracle" Hresult:0x80040E5D
説明:"パラメータ名は認識されていません。"。
[参照[16]]エラー:パラメーターのバインド中にOLE DBエラーが発生しました。
SQLCommandプロパティおよびSqlCommandParamプロパティを確認してください。
[SSIS.Pipeline]エラー:コンポーネント"参照"(16)が実行前フェーズに失敗し、 エラーコード0xC020824Fが返されました。
※ちなみに、同じデータを用いてフルキャッシュで行った場合、正しくデータが移行されます。(警告は出ます。)
しかし、この手法だと実行時間が長いため、要件を満たすことができません。
どうぞ宜しくお願い致します。
すべての返信
-
h.nakamura さん、こんにちは
フォーラム オペレーターの星 睦美です。フォーラムの回答者にも質問の事象に関するトラブルシューティングの手がかりになればと思いますので、
私からはh.nakamura さんの環境に関して確認させていただきますね。SQL Server 2008 には最新のサービス パックは適用されていますでしょうか?
・(補足) SQL Server 2008 の最新の Service Pack を入手する方法:
フォーラム オペレーター 星 睦美 - MSDN Community Support
-
星 睦美さん
いつもお世話になっております。
ご回答いただき、誠にありがとうございます。
SQL Serverの環境を確認したところ、バージョンはSQL Server2008 R2でした。
バージョン情報は以下になります。
【SQL Server2008 R2】
Microsoft SQL Server Management Studio 10.50.1600.1
Microsoft Analysis Services クライアント ツール 10.50.1600.1
Microsoft Data Access Components (MDAC) 3.86.3959
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.3959
Microsoft .NET Framework 2.0.50727.3053
オペレーティング システム 5.2.3790
また、SSIS2008のバージョン情報は以下になります。
【SSIS2008】
Microsoft Visual Studio 2008
Version 9.0.30729.4462 QFE
Microsoft .NET Framework
Version 3.5 SP1
インストールされている Edition: IDE StandardSQL Server Analysis Services
Microsoft SQL Server Analysis Services デザイナー
Version 10.50.1600.1
SQL Server Integration Services
Microsoft SQL Server Integration Services デザイナー
バージョン 10.50.1600.1
SQL Server Reporting Services
Microsoft SQL Server Reporting Services デザイナー
Version 10.50.1600.1
また今回の現象を、SQLserver2012,SSIS2012の環境でも試しましたが、 同じ箇所でエラーが発生してしまいました。
ちなみにバージョン情報は以下になります。
【SQL Server2012】
Microsoft SQL Server Management Studio 11.0.3128.0
Microsoft Analysis Services クライアント ツール 11.0.3128.0
Microsoft Data Access Components (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 8.0.7601.17514
Microsoft .NET Framework 4.0.30319.17929
オペレーティング システム 6.1.7601
------------------------------------------------------------ ------------------
【SSIS2012】Microsoft Visual Studio 2012 Shell (Integrated)
Version 11.0.50727.1 RTMREL
Microsoft .NET Framework
Version 4.5.50709
インストールされているバージョン: IDE Standard
Microsoft Visual Studio Tools for Applications 2012 04932-004-0017006-02334
Microsoft Visual Studio Tools for Applications 2012
Visual Basic 2012 04932-004-0017006-02334
Microsoft Visual Basic 2012
Visual C# 2012 04932-004-0017006-02334
Microsoft Visual C# 2012
SQL Server Analysis Services
Microsoft SQL Server Analysis Services デザイナー
Version 11.0.3369.0
SQL Server Integration Services
Microsoft SQL Server Integration Services デザイナー
バージョン 11.0.3369.0
SQL Server Reporting Services
Microsoft SQL Server Reporting Services デザイナー
Version 11.0.3369.0
どうぞ宜しくお願い致します。 -
まだ画像が挿入できないため、図で表します。
※データフロータスク
_____________
│ ADO NET 変換元 │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↓
_____________
│ データ変換 │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↓
_____________
│ 参照 │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↓ 参照の一致出力
_____________
│ SQL Server 変換先 │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※「参照」コンポーネント内の「列」
[使用できる入力列]
____________
│ sbn_code │ [使用できる参照列]
―――――――――――― ____________
│ sbn_code_copy │━━━━━━━━━━━│ st_code │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ――――――――――――
│ st_data1 │
――――――――――――
│ st_data2 │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
お気づきの点がありましたら、どなたかアドバイスお願い致します。
- 編集済み h.nakamura 2013年11月7日 12:53 図がずれていたため