OLE DB コマンド変換

OLE DB コマンド変換は、データ フローの各行に対して SQL ステートメントを実行します。 たとえば、データベース テーブル内に行を挿入したり、行を更新または削除する SQL ステートメントを実行できます。

OLE DB コマンド変換は、次の方法で構成できます。

  • 各行に対して変換が実行する SQL ステートメントを指定します。

  • SQL ステートメントがタイムアウトになる時間を秒数で指定します。

  • 既定のコード ページを指定します。

通常、SQL ステートメントにはパラメーターが含まれます。 パラメーター値は変換入力内の外部列に格納され、入力列を外部列にマップすることによって、入力列をパラメーターにマップします。 たとえば、ProductKey 列の値を使用し、DimProduct テーブルの行を探して削除するには、Param_0 という名前の外部列を ProductKey という名前の入力列にマップし、SQL ステートメント DELETE FROM DimProduct WHERE ProductKey = ? を実行します。 OLE DB コマンド変換で用意されているパラメーター名は変更できません。 パラメーター名は、Param_0Param_1 のように指定されます。

[詳細エディター] ダイアログ ボックスを使用して OLE DB コマンド変換を構成する場合、SQL ステートメント内のパラメーターは変換入力内の外部列に自動的にマップされ、[最新の情報に更新] ボタンをクリックすると、各パラメーターの特性が定義されます。 ただし、OLE DB コマンド変換で使用する OLE DB プロバイダーが、パラメーターから取得するパラメーター情報をサポートしていない場合、外部列を手動で構成する必要があります。 つまり、外部入力に渡すパラメーターごとに列を変換に追加し、Param_0 などの名前が使用されるように列名を更新します。さらに、DBParamInfoFlags プロパティの値を指定し、パラメーター値を含む入力列を外部列にマップする操作が必要です。

DBParamInfoFlags の値は、パラメーターの特性を表します。 たとえば、値 1 は、パラメーターが入力パラメーターであることを表し、値 65 は、パラメーターが入力パラメーターであり、NULL 値を含めることができることを表します。 この値は、OLE DB DBPARAMFLAGSENUM 列挙値と一致する必要があります。 詳細については、OLE DB のリファレンス マニュアルを参照してください。

OLE DB コマンド変換には、SQLCommand カスタム プロパティがあります。 このプロパティは、パッケージの読み込み時にプロパティ式で更新できます。 詳細については、「Integration Services (SSIS) の式」、「パッケージでプロパティ式を使用する」、および「変換のカスタム プロパティ」を参照してください。

この変換は、1 つの入力、1 つの標準出力、および 1 つのエラー出力をとります。

ログ記録

OLE DB コマンド変換による外部データ プロバイダーの呼び出しをログに記録できます。 このログ機能を使用すると、OLE DB コマンド変換による外部データ ソースへの接続およびコマンドに関するトラブルシューティングを行うことができます。 OLE DB コマンド変換による外部データ プロバイダーの呼び出しのログを記録するには、パッケージ ログ記録を有効にして、パッケージ レベルで Diagnostic イベントを選択する必要があります。 詳細については、「パッケージ実行のトラブルシューティング ツール」を参照してください。

関連タスク

変換は、SSIS デザイナーまたはオブジェクト モデルを使用して構成できます。 SSIS デザイナーを使用して変換を構成する方法については、「OLE DB コマンド変換を構成する」を参照してください。 プログラムによってこの変換を構成する方法の詳細については、開発者ガイドを参照してください。

関連コンテンツ

Integration Services のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN の Integration Services のページを参照してください。


これらの更新が自動で通知されるようにするには、ページの RSS フィードを定期受信します。

関連項目

概念

データ フロー

Integration Services の変換