2

固定レコード長のフラット ファイルから SQL テーブルにデータをインポートする SSIS パッケージを作成しました。1 つのファイル内では、レコード長は一定ですが、ファイルが異なればレコード長も異なる場合があります。各レコードは CR/LF で終わります。レコードの終わりがどこにあるかを検出し、インポート時にその長さを使用するにはどうすればよいですか?

4

2 に答える 2

1

スクリプトタスクを使用できます。ReadWriteVariableをスクリプトタスクに渡します。ReadWriteVariableintLineLengthを呼び出しましょう。スクリプトタスクコードで、CR / LFの場所を検出し、intLineLengthに書き込みます。次のパッケージ手順でintLineLengthReadWriteVariableを使用して、データをインポートします。

ここにいくつかの良い例の記事があります:script-task-to-dynamically-build-package-variables

お役に立てれば。

于 2012-11-09T23:16:46.597 に答える
1

これは誰にとってもうまくいくとは限りませんが、私が最終的に行ったのは、区切り付きフラット ファイルに設定し、行区切り記号として CR/LF を設定し、列区切り記号とテキスト修飾子を空白のままにすることでした。実際にインポートで列を分割する必要がある場合、これは機能しませんが、列の位置が可変であるため、実際の列分割を行うために派生列タスクを既に使用していたので、うまく機能しました。

于 2012-11-12T16:34:41.420 に答える