4

不規則な右側のフラット ファイル オプションは、CRLF で終了する単一の末尾フィールドに最適ですが、空白の末尾フィールドがいくつでも抑制され、行が CRLF で早期に終了する場合、SSIS に代替手段が見つかりませんでしたが、いくつかを読む必要があります列を単一の「REMAINDER」列で入力し、派生列変換と SUBSTRING 操作を使用して、「オプションの」列を 1 つずつ抽出しました。

私が考えた 1 つの可能性は、接続マネージャーがそれを取得する前に、SSIS 内の「パダー」コンポーネントを介して行を渡す方法があるかどうかです。そうすれば、接続マネージャーを使用して受信列の長さを設定するすべての利点を得ることができます。私は常に外部プログラム (または完全に別の SSIS データフロー) を作成して、すべての行にスペースを埋め込むファイルを渡すことができました (そして、不規則な右に - すべての抑制されたフィールドを考慮して同じ最小数のスペースをすべての行に追加するだけです)。 1 行で十分です) が、これはかなりディスク領域を浪費するように思われ、ファイルをもう一度完全に読み取る (および書き込む) 必要があります。

あるいは、行が途中で終了した場合、単純に NULL または空白になり、列が自動的に表示されるサード パーティのデータ ソース コンポーネントが存在する可能性があります。

他のオプションはありますか?

4

2 に答える 2

2

あなたが提案した解決策は合理的に聞こえると思います。ディスク容量は安価です。データをインポートする前にフォーマットを消去する 2 段階のプロセスを使用することはまったく問題ありません。

于 2008-11-06T15:38:36.787 に答える
1

スクリプト コンポーネントを使用して、列をデータ ソースとして分離します。

于 2010-12-07T14:42:25.987 に答える