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 の式のリファレンス」、「パッケージでのプロパティ式の使用」、および「変換のカスタム プロパティ」を参照してください。

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

OLE DB コマンド変換のトラブルシューティング

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

OLE DB コマンド変換の構成

プロパティを設定するには SSIS デザイナから行うか、またはプログラムによって設定します。

[詳細エディタ] ダイアログ ボックスまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。

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

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

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