処理タスクの実行:
プロセス実行タスクは、実行しようとしているタスクに適していません。ファイルの内容をScript Task
読み取って、選択したテキストを行の前に付けるか、 を使用しData Flow Task
て、コーディングなしで構成を通じて同じことを実現できます。
例を示す SSIS 2012 パッケージ:
SSIS 2012 を使用して作成された以下のパッケージは、テキスト ファイルの内容を読み取り、各行の前にテキスト フレーズを付けて、出力を別のフラット ファイルに書き込む方法を示しています。
Products.txt
各行がキャリッジ リターンとライン フィード文字で終わる次の情報を含む、という名前のファイルを読み取る必要があるとします。{CR}{LF}

という名前の SSIS パッケージを作成しますSO_15213317.dtsx
。このサンプルでは SQL Server Data Tools (SSDT) 2012 を使用してパッケージを作成しますが、この例のロジックは古い SSIS バージョン 2005 ~ 2008 R2 に適用できます。
を [制御フロー] タブにドラッグ アンド ドロップしData Flow Task
ます。パッケージの下部にある [接続マネージャー] タブを右クリックし、[ ]をクリックします。この接続マネージャーは、ソース ファイルの読み取りに使用されます。New Flat File Connection...

フラット ファイル接続マネージャー エディターで、次の手順を実行します。
- 名前を
FILE_Products
- 説明を
Read the products information from flat file.
- ファイルがある場所を参照し、ファイルを選択します。
- 残りのプロパティは、ファイル内のデータに基づいて継承されます。
Column names in the first data row
ファイルに列ヘッダーがある場合は、チェックボックスをオンにします
- ページをクリックし
Columns
ます。

[列] タブをデフォルト設定のままにして、Advanced
ページをクリックします。

詳細ページは、ヘッダー情報に基づいて列名を自動的に構成し、SSIS はデータ型についても適切に推測します。この場合、列のデータ型が文字列であると判断されています。

[プレビュー] タブをクリックして、ファイル データを簡単に確認します。[OK] をクリックして、フラット ファイル接続マネージャー エディターを閉じます。

[制御フロー] タブの [データ フロー タスク] をダブルクリックして、[データ フロー] タブに切り替えます。データ フロー タスクで、 をドラッグ アンド ドロップしFlat File Source
てソース ファイルを読み取ります。以下に示すように、フラット ファイル ソースを構成します。

列は自動的に構成されます。[OK] をクリックして、フラット ファイル ソース エディターを閉じます。

Test
すべての行のテキストにプレフィックスを付けるには、 Derived Column Transformation
. フラット ファイル ソースの後に派生列変換をドラッグ アンド ドロップします。フラット ファイル ソースを派生列変換に接続します。新しい列を追加するか、既存の列を置き換えることができます。この例では、次の式を使用して新しい列を追加します。この式は、テキスト Test を column の入力値の前にProductName
付けてから、長さ 54 文字の SSIS データ型 DT_WSTR に型キャストします。
(DT_WSTR,54)("Test" + ProductName)

をドラッグ アンド ドロップしFlat File Destination
て、出力を別のテキスト ファイルに書き込みます。フラット ファイル送信先エディターで ボタンをクリックして、New...
送信先ファイルの新しいフラット ファイル接続マネージャーを作成します。

ダイアログで選択Delimited
しFlat File Format
、[OK] をクリックします。

フラット ファイル接続マネージャー エディターで、次の手順を実行します。
- 名前を
FILE_NewProducts
- 説明を
Write the data to the new product flat file..
- ファイルを保存する場所を参照し、ファイルに名前を付けます。
- 要件に従って、残りのプロパティを構成します。
Column names in the first data row
列ヘッダーをファイルに書き込む必要がある場合は、ボックスをオンにします
- ページをクリックし
Columns
ます。

行と列の区切り記号を使用して列ページを構成します。

[詳細] ページで、列のProductName
列をクリックし、 をクリックしますDelete
。列には好きな名前を付けることができます。

列のみがNewProductName
宛先接続マネージャーに残ります。[OK] をクリックします。

Flat File Destination Editorで、正しいフラット ファイル接続マネージャーを選択していることを確認します。

[マッピング]ページをクリックして、データを書き込むための列マッピングを構成します。

データ フロー タスクを構成すると、パッケージは次のようになります。

パッケージを実行してソース ファイルを読み取り、テキスト プレフィックス付きの新しい出力ファイルを生成します。

新しく生成されたファイルNewProducts.txt
には、プレフィックス テキスト フレーズが含まれます。Test

その他のオプション:
ファイルを読み取るにはさまざまな方法があり、Script Task
. ただし、ここでの例は、SSIS パッケージ内のテキスト ファイルを読み取る適切な方法を示しています。これにより、今後フラット ファイルまたは区切りファイルを扱う SSIS パッケージを設計する方法についてのアイデアが得られるはずです。