OLE DB コマンド変換では、データ フロー内の各行に対して SQL ステートメントが実行されます。 たとえば、データベース テーブル内の行を挿入、更新、または削除する SQL ステートメントを実行できます。
OLE DB コマンド変換は、次の方法で構成できます。
各行に対して変換が実行する SQL ステートメントを指定します。
SQL ステートメントがタイムアウトになる時間を秒数で指定します。
既定のコード ページを指定します。
通常、SQL ステートメントにはパラメーターが含まれます。 パラメーター値は変換入力内の外部列に格納され、入力列を外部列にマップすることによって、入力列をパラメーターにマップします。 たとえば、 ProductKey 列の値を使用し、 DimProduct テーブルの行を探して削除するには、 Param_0 という名前の外部列を ProductKey という名前の入力列にマップし、SQL ステートメント DELETE FROM DimProduct WHERE ProductKey = ?を実行します。 OLE DB コマンド変換で用意されているパラメーター名は変更できません。 パラメーター名は、 Param_0、 Param_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 コマンド変換の構成」を参照してください。 プログラムによってこの変換を構成する方法の詳細については、開発者ガイドを参照してください。