私はデータフロータスクで派生列と条件付き分割で不要な行を削除した後、以下のようなSSISの列を操作しようとしています。これのソースはフラットファイルです。列SSISのシリーズ番号を読み、変更するには?
XXX008001161022061116030S1TVCO3057
XXX008002161022061146015S1PUAG1523
XXX009001161022063116030S1DVLD3002
XXX009002161022063146030S1TVCO3057
XXX009003161022063216015S1PUAG1523
XXX010001161022065059030S1MVMA3020
XXX010002161022065129030S1TVCO3057
XXX01000316102206515901551PPE01504
左から最初の3つの数字(出発「008」第1行)はシリーズを表し、次の3つ(「001」)はシリーズ内の別の番号を表す。私が必要とするのは、最初の3つの数字のすべてを "001"から最後まで変更することです。
希望reslutは、このように次のようになります。
XXX001001161022061116030S1TVCO3057
XXX001002161022061146015S1PUAG1523
XXX002001161022063116030S1DVLD3002
XXX002002161022063146030S1TVCO3057
XXX002003161022063216015S1PUAG1523
XXX003001161022065059030S1MVMA3020
XXX003002161022065129030S1TVCO3057
XXX00300316102206515901551PPE01504 ...
私の潜在的な解決方法は、ファイルを一時データベーステーブルに読み込んでそこからSQLでクエリすることですが、これを回避しようとしています。
最終的な宛先はフラットファイルです。
SSISでこの問題を解決する方法はありますか?他のソリューションも評価されています。私は間違いなく、ステージング表のアプローチを使用し、これを実現するために、Windowsの機能を使用することになり、事前
出力に送る前にSQLコードでデータを操作できませんか?変更を適用するには 'RANK()'と 'substring'を考えていますか? – Tanner
私はデータベースを作成せずにデータを照会できるようにデータを送信する必要があるのでしょうか?何か案は? –
「前の行」が何であるかを知る必要があるので、SSISでこれを行う唯一の方法は、スクリプト変換またはカスタムコンポーネントを使用することです。または、ステージングテーブルを使用することもできます。SSIS内部で複雑なロジックを構築することをお勧めします –