OLE DB 変換先

適用対象: SQL Server Azure Data Factory の SSIS Integration Runtime

OLE DB 変換先は、データベースのテーブルやビュー、または SQL コマンドを使用して、OLE DB に準拠するさまざまなデータベースにデータを読み込みます。 たとえば、OLE DB ソースにより、Microsoft Office Access および SQL Server のデータベースのテーブルにデータを読み込むことができます。

Note

データ ソースが Microsoft Office Excel 2007 である場合、Excel の以前のバージョンとは異なる接続マネージャーが必要になります。 詳細については、「 Excel ブックに接続する」を参照してください。

OLE DB 変換先には、データを読み込むために、次の 5 つの異なるデータ アクセス モードが用意されています。

  • テーブルまたはビュー。 既存のテーブルまたはビューを指定できます。または、新しいテーブルを作成できます。

  • テーブルまたはビュー (高速読み込みオプションを使用)。 既存のテーブルを指定できます。または新しいテーブルを作成できます。

  • 変数で指定されたテーブルまたはビュー。

  • 変数で指定されたテーブルまたはビュー (高速読み込みオプションを使用)。

  • SQL ステートメントの結果。

Note

OLE DB 変換先ではパラメーターがサポートされません。 パラメーター化された INSERT ステートメントを実行する必要がある場合は、OLE DB コマンド変換を検討してください。 詳細については、「 OLE DB Command Transformation」を参照してください。

OLE DB 変換先で 2 バイト文字セット (DBCS) を使用するデータを読み込む際に、データ アクセス モードで高速読み込みオプションを使用せず、OLE DB 接続マネージャーが Microsoft OLE DB Provider for SQL Server (SQLOLEDB) を使用している場合、そのデータは破損する可能性があります。 DBCS データの整合性を保持するには、OLE DB 接続マネージャーで SQL Server Native Client を使用するように構成するか、[テーブルまたはビュー - 高速読み込み] または [テーブル名またはビュー名の変数 - 高速読み込み]のうちいずれかの高速読み込みモードを使用する必要があります。 どちらのオプションも、 [OLE DB 変換先エディター] ダイアログ ボックスから使用できます。 SSIS オブジェクト モデルをプログラミングするときは、AccessMode プロパティを [OpenRowset での FastLoad の使用] または [Variable から FastLoad を使用して OpenRowset] に設定する必要があります。

Note

SSIS デザイナーの [OLE DB 変換先エディター] ダイアログ ボックスを使用して、OLE DB 変換先がデータを挿入する変換先テーブルを作成する際に、新しく作成したテーブルを手動で選択する必要がある場合があります。 手動で選択する必要があるのは、OLE DB provider for DB2 などの OLE DB プロバイダーが、スキーマの識別子を自動的にテーブル名に追加した場合です。

Note

変換先の種類に応じて、 [OLE DB 変換先エディター] ダイアログ ボックスによって生成される CREATE TABLE ステートメントの変更が必要になる場合があります。 たとえば、変換先によっては CREATE TABLE ステートメントで使用されるデータ型をサポートしない場合もあります。

OLE DB 変換先は、OLE DB 接続マネージャーを使用してデータ ソースに接続します。OLE DB 接続マネージャーでは、使用する OLE DB プロバイダーを指定します。 詳細については、「 OLE DB 接続マネージャー」を参照してください。

Integration Services プロジェクトでは、OLE DB 接続マネージャーを作成できるデータ ソース オブジェクトも用意されています。このオブジェクトは、データ ソースとデータ ソース ビューを OLE DB 変換先で使用できるようにします。

OLE DB 変換先には、入力列と変換先データ ソースの列との間のマッピングが含まれています。 入力列をすべての変換先列にマップする必要はありませんが、変換先列のプロパティによっては、変換先列にマップされる入力列がない場合、エラーが発生することがあります。 たとえば、入力先列で NULL 値が許容されていない場合は、入力列をその列にマップする必要があります。 また、マップされる列のデータ型には互換性がある必要があります。 たとえば、文字列データ型の入力列を数値データ型の変換先列にマップすることはできません。

OLE DB 変換先は、1 つの標準入力と 1 つのエラー出力をとります。

データ型について詳しくは、「 Integration Services のデータ型」をご覧ください。

高速読み込みオプション

OLE DB 変換先で高速読み込みデータ アクセス モードが使用される場合、 [OLE DB 変換先エディター] のユーザー インターフェイスで、変換先に対して次の高速読み込みオプションを指定できます。

  • インポートしたデータ ファイルの ID 値を保持します。または、 SQL Serverによって割り当てられた一意の値を使用します。

  • 一括読み込み操作中に、NULL 値を保持します。

  • 一括インポート操作中に、インポート先のテーブルまたはビューに対して CHECK 制約を実行します。

  • 一括読み込み操作中に、テーブルレベルのロックを取得します。

  • バッチの行数およびコミット サイズを指定します。

一部の高速読み込みオプションは、OLE DB 変換先の特定のプロパティに格納されています。 たとえば、ID 値を保持するかどうかを指定する FastLoadKeepIdentity、NULL 値を保持するかどうかを指定する FastLoadKeepNulls、バッチとしてコミットする行数を指定する FastLoadMaxInsertCommitSize などがあります。 その他の高速読み込みオプションは、FastLoadOptions プロパティのコンマ区切りリストで格納されます。 OLE DB 変換先で、FastLoadOptions に格納されている高速読み込みオプションと [OLE DB 変換先エディター] ダイアログ ボックスに一覧表示されている高速読み込みオプションをすべて使用する場合は、このプロパティの値を TABLOCK, CHECK_CONSTRAINTS, ROWS_PER_BATCH=1000に設定します。 値 1000 を設定すると、1,000 行のバッチを使用するように変換先が構成されます。

Note

変換先で制約が失敗すると、FastLoadMaxInsertCommitSize で定義された行数のバッチ全体が失敗します。

[OLE DB 変換先エディター] ダイアログ ボックスで公開される高速読み込みオプションに加えて、 [詳細エディター] ダイアログ ボックスで、FastLoadOptions プロパティに次の一括読み込みオプションを入力することにより、それらのオプションを使用するように OLE DB 変換先を構成できます。

高速読み込みオプション 説明
KILOBYTES_PER_BATCH 挿入するサイズを KB 単位で指定します。 このオプションの形式は、KILOBYTES_PER_BATCH = <正の整数> です。
FIRE_TRIGGERS 挿入テーブルでトリガーを起動するかどうかを指定します。 このオプションの形式は、 FIRE_TRIGGERSです。 このオプションが指定されている場合は、トリガーが起動されます。
ORDER 入力データの並べ替え方法を指定します。 このオプションの形式は、ORDER <列名> ASC|DESC です。 並べ替える列のリストには任意の数列を指定できます。並べ替え順序の指定は省略することもできます。 並べ替え順序を指定しなかった場合は、データを並べ替えないと見なして挿入操作が実行されます。

注:ORDER オプションを使用してテーブル上のクラスター化インデックスに従って入力データを並べ替えると、パフォーマンスが向上する可能性があります。

Transact-SQL キーワードは慣例として通常は大文字で入力しますが、これらのキーワードの大文字小文字は区別されません。

高速読み込みオプションの詳細については、「BULK INSERT (Transact-SQL)」を参照してください。

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

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

OLE DB 変換先の構成

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

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

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

[OLE DB 変換先エディター] ([接続マネージャー] ページ)

[OLE DB 変換先エディター] ダイアログ ボックスの [接続マネージャー] ページを使用すると、変換先の OLE DB 接続を選択できます。 さらにこのページを使用して、データベースのテーブルやビューを選択できます。

Note

データ ソースが Microsoft Office Excel 2007 である場合、Excel の以前のバージョンとは異なる接続マネージャーが必要になります。 詳細については、「 Excel ブックに接続する」を参照してください。

Note

OLE DB 変換先の CommandTimeout プロパティは、 [OLE DB 変換先エディター] ではアクセスできませんが、 [詳細エディター] を使用して設定できます。 また、一部の高速読み込みオプションは [詳細エディター] でしか使用できません。 これらのプロパティの詳細については、「 OLE DB カスタム プロパティ」の OLE DB 変換先に関するセクションを参照してください。

CommandTimeout プロパティは、データ アクセス モードが SQL コマンドの場合にのみ有効です。

静的オプション

[キャッシュなし]
既存の接続マネージャーを一覧から選択するか、 [新規作成] をクリックして新しい接続を作成します。

[新規作成]
[OLE DB 接続マネージャーの構成] ダイアログ ボックスを使用して、新しい接続マネージャーを作成します。

[データ アクセス モード]
データを変換先に読み込む方法を指定します。 2 バイト文字セット (DBCS) データを読み込むには、高速読み込みオプションのいずれかを使用する必要があります。 一括挿入用に最適化された高速読み込みデータ アクセス モードの詳細については、「 OLE DB 変換先」を参照してください。

オプション 説明
[テーブルまたはビュー] データを OLE DB 変換先のテーブルまたはビューに読み込みます。
[テーブルまたはビュー - 高速読み込み] 高速読み込みオプションを使用し、データを OLE DB 変換先のテーブルまたはビューに読み込みます。 一括挿入用に最適化された高速読み込みデータ アクセス モードの詳細については、「 OLE DB 変換先」を参照してください。
[テーブル名またはビュー名の変数] テーブル名またはビュー名を変数で指定します。

関連情報: パッケージで変数を使用する
[テーブル名またはビュー名の変数 - 高速読み込み] 高速読み込みオプションを使用し、テーブル名またはビュー名を変数で指定します。 一括挿入用に最適化された高速読み込みデータ アクセス モードの詳細については、「 OLE DB 変換先」を参照してください。
[SQL コマンド] SQL クエリを使用し、データを OLE DB 変換先に読み込みます。

プレビュー
[クエリ結果のプレビュー] ダイアログ ボックスを使用して、結果をプレビューします。 プレビューでは、最大で 200 行を表示できます。

データ アクセス モードの動的オプション

[データ アクセス モード] の各設定には、その設定に固有のオプションの動的なセットが表示されます。 次のセクションでは、各 [データ アクセス モード] 設定で使用可能な各動的オプションについて説明します。

[データ アクセス モード] = [テーブルまたはビュー]

[テーブル名またはビュー名]
データ ソースで使用できるテーブルまたはビューの一覧から、テーブルまたはビューの名前を選択します。

[新規作成]
[テーブルの作成] ダイアログ ボックスを使用して新しいテーブルを作成します。

Note

[新規作成] をクリックすると、 Integration Services により、接続されているデータ ソースに基づいて既定の CREATE TABLE ステートメントが生成されます。 基になるテーブルの列に FILESTREAM 属性が宣言されていても、この既定の CREATE TABLE ステートメントには FILESTREAM 属性が含まれません。 FILESTREAM 属性を使用して Integration Services コンポーネントを実行するには、まず対象データベースに FILESTREAM ストレージを実装します。 次に、 [テーブルの作成] ダイアログ ボックスで CREATE TABLE ステートメントに FILESTREAM 属性を追加します。 詳細については、「バイナリ ラージ オブジェクト (Blob) データ (SQL Server)」を参照してください。

[データ アクセス モード] = [テーブルまたはビュー - 高速読み込み]

[テーブル名またはビュー名]
この一覧を使用してデータベースからテーブルまたはビューを選択するか、 [新規作成] をクリックして新しいテーブルを作成します。

[新規作成]
[テーブルの作成] ダイアログ ボックスを使用して新しいテーブルを作成します。

Note

[新規作成] をクリックすると、 Integration Services により、接続されているデータ ソースに基づいて既定の CREATE TABLE ステートメントが生成されます。 基になるテーブルの列に FILESTREAM 属性が宣言されていても、この既定の CREATE TABLE ステートメントには FILESTREAM 属性が含まれません。 FILESTREAM 属性を使用して Integration Services コンポーネントを実行するには、まず対象データベースに FILESTREAM ストレージを実装します。 次に、 [テーブルの作成] ダイアログ ボックスで CREATE TABLE ステートメントに FILESTREAM 属性を追加します。 詳細については、「バイナリ ラージ オブジェクト (Blob) データ (SQL Server)」を参照してください。

[ID を保持する]
データが読み込まれるときに ID 値をコピーするかどうかを指定します。 このプロパティは、高速読み取りオプションを指定した場合にのみ使用できます。 このプロパティの既定値は falseです。

[NULL を保持する]
データが読み込まれるときに NULL 値をコピーするかどうかを指定します。 このプロパティは、高速読み取りオプションを指定した場合にのみ使用できます。 このプロパティの既定値は falseです。

[テーブル ロック]
読み込み中にテーブルをロックするかどうかを指定します。 このプロパティの既定値は trueです。

CHECK 制約
データの読み込み中に変換先で制約をチェックするかどうかを指定します。 このプロパティの既定値は trueです。

[バッチごとの行数]
バッチ内の行数を指定します。 このプロパティの既定値は、 -1です。これは、割り当てられた値がないことを示します。

Note

このプロパティにカスタム値を割り当てない場合、 [OLE DB 変換先エディター] のテキスト ボックスをクリアします。

[挿入コミット サイズの最大値]
高速読み込み操作の実行中に OLE DB 変換先でコミットを試行するバッチ サイズを指定します。 値 0 は、すべての行が処理された後、すべてのデータを 1 つのバッチでコミットすることを示します。

Note

値を 0 にすると、OLE DB 変換先と別のデータ フロー コンポーネントが同じソース テーブルを更新している場合に、実行中のパッケージが応答を停止する可能性があります。 パッケージが停止しないようにするには、 [挿入コミット サイズの最大値] オプションを 2147483647に設定します。

このプロパティに値を指定すると、変換先で [挿入コミット サイズの最大値] 未満の行数のバッチがコミットされます。値を指定しない場合は、現在処理されているバッファー内の残りの行数がコミットされます。

Note

変換先で制約が失敗すると、 [挿入コミット サイズの最大値] で定義された行数のバッチ全体が失敗します。

[データ アクセス モード] = [テーブル名またはビュー名の変数]

[変数名]
テーブル名またはビュー名を含む変数を選択します。

[データ アクセス モード] = [テーブル名またはビュー名の変数 - 高速読み込み]

[変数名]
テーブル名またはビュー名を含む変数を選択します。

[新規作成]
[テーブルの作成] ダイアログ ボックスを使用して新しいテーブルを作成します。

Note

[新規作成] をクリックすると、 Integration Services により、接続されているデータ ソースに基づいて既定の CREATE TABLE ステートメントが生成されます。 基になるテーブルの列に FILESTREAM 属性が宣言されていても、この既定の CREATE TABLE ステートメントには FILESTREAM 属性が含まれません。 FILESTREAM 属性を使用して Integration Services コンポーネントを実行するには、まず対象データベースに FILESTREAM ストレージを実装します。 次に、 [テーブルの作成] ダイアログ ボックスで CREATE TABLE ステートメントに FILESTREAM 属性を追加します。 詳細については、「バイナリ ラージ オブジェクト (Blob) データ (SQL Server)」を参照してください。

[ID を保持する]
データが読み込まれるときに ID 値をコピーするかどうかを指定します。 このプロパティは、高速読み取りオプションを指定した場合にのみ使用できます。 このプロパティの既定値は falseです。

[NULL を保持する]
データが読み込まれるときに NULL 値をコピーするかどうかを指定します。 このプロパティは、高速読み取りオプションを指定した場合にのみ使用できます。 このプロパティの既定値は falseです。

[テーブル ロック]
読み込み中にテーブルをロックするかどうかを指定します。 このプロパティの既定値は falseです。

CHECK 制約
タスクで制約をチェックするかどうかを指定します。 このプロパティの既定値は falseです。

[バッチごとの行数]
バッチ内の行数を指定します。 このプロパティの既定値は、 -1です。これは、割り当てられた値がないことを示します。

Note

このプロパティにカスタム値を割り当てない場合、 [OLE DB 変換先エディター] のテキスト ボックスをクリアします。

[挿入コミット サイズの最大値]
高速読み込み操作の実行中に OLE DB 変換先でコミットを試行するバッチ サイズを指定します。 既定値の 2147483647 は、すべての行が処理された後、すべてのデータを 1 つのバッチでコミットすることを示します。

Note

値を 0 にすると、OLE DB 変換先と別のデータ フロー コンポーネントが同じソース テーブルを更新している場合に、実行中のパッケージが応答を停止する可能性があります。 パッケージが停止しないようにするには、 [挿入コミット サイズの最大値] オプションを 2147483647に設定します。

[データ アクセス モード] = [SQL コマンド]

[SQL コマンド テキスト]
SQL クエリのテキストを入力し、 [クエリの作成] をクリックしてクエリを作成するか、 [参照] をクリックしてクエリ テキストを含むファイルを指定します。

Note

OLE DB 変換先ではパラメーターがサポートされません。 パラメーター化された INSERT ステートメントを実行する必要がある場合は、OLE DB コマンド変換を検討してください。 詳細については、「 OLE DB Command Transformation」を参照してください。

[クエリの作成]
SQL クエリを視覚的に作成するには、 [クエリ ビルダー] ダイアログ ボックスを使用します。

[参照]
[開く] ダイアログ ボックスを使用して、SQL クエリのテキストが含まれているファイルを指定します。

[クエリの解析]
クエリ テキストの構文を検査します。

[OLE DB 変換先エディター] ([マッピング] ページ)

[OLE DB 変換先エディター] ダイアログ ボックスの [マッピング] ページを使用すると、入力列を変換先列にマップできます。

Options

使用できる入力列
使用できる入力列の一覧を表示します。 ドラッグ アンド ドロップ操作により、テーブル内の使用できる入力列を変換先列にマップします。

使用できる変換先列
使用できる変換先列の一覧を表示します。 ドラッグ アンド ドロップ操作により、テーブル内の使用できる変換先列を入力列にマップします。

入力列
選択した入力列を表示します。 <無視> を選択して出力から列を除外することで、マッピングを削除できます。

変換先列
マップするかどうかにかかわらず、使用できる変換先列を表示します。

[OLE DB 変換先エディター] ([エラー出力] ページ)

[OLE DB 変換先エディター] ダイアログ ボックスの [エラー出力] ページを使用すると、エラー処理オプションを指定できます。

Options

[入力または出力]
入力の名前を表示します。


使用されていません。

Error
エラーが発生した場合に、障害を無視するか、行をリダイレクトするか、コンポーネントを失敗させるかを指定します。

関連項目:データのエラー処理

切り捨て
使用されていません。

説明
操作の説明を表示します。

[選択したセルに設定する値]
エラーまたは切り捨てが発生した場合に、選択したすべてのセルに対して障害を無視するか、行をリダイレクトするか、コンポーネントを失敗させるかを指定します。

[適用]
選択したセルにエラー処理オプションを適用します。

OLE DB 変換元

Integration Services (SSIS) の変数

データ フロー