0

テキストファイルからSQLサーバーのテーブルにデータをコピーするSSISパッケージがあります。

同じ1)フラットファイルソース2)派生列タスク、3)SQL宛先タスクに3つのタスクを使用します

3番目のタスクでは、データをコピーする必要があるテーブルを指定します。

その宛先テーブルには、DESC列があります。これはvarchar型であり、フラットファイルにはこの列のデータが次のように含まれています:-"01 planA" .. "04 plan C"、"PlanJ"。

これらの接頭辞付きの数値を削除する必要があります。以下のようなクエリがありますが、SSISはPATINDEXをサポートしないため、派生列タスクでこれを使用できます。

SUBSTRING([DESC], PATINDEX('%[a-zA-Z]%',[DESC]), LEN([DESC])- PATINDEX('%[a-zA-Z]%',[DESC])+1)

私を助けてください。

4

1 に答える 1

1

正規表現を使用して、スクリプト タスクでこれを行うことができます。System.Text.RegularExpressions を参照してから、.NET Regex オブジェクトを使用して上記の Input0_ProcessInputRow メソッドのコードを模倣する必要があります。

または、最初に生データを SQL ステージング テーブルに送信し、例のように PATINDEX を使用してそこから抽出し、クリーン バージョンを宛先テーブルにプッシュします。

于 2011-04-11T20:50:15.880 に答える