1

常に 2 文字の英字で開始する必要がある 9 桁の varchar フィールドを除外できる SSIS 式内の条件ステートメントを作成するには、助けが必要です。

パターンは常に従う必要があります: AA0000000

私の目標は、データ フローが条件分岐に達し、後で QA のために不正なレコードをダンプ ファイルにダンプすることです。

例:

  • AQ1234567 <-- リーガル
  • PA9876543 <-- リーガル
  • RR1133456 <-- リーガル
  • K12345G65 <-- 違法
  • 098874312 <-- 違法

私は、誰もがこのフィルターを処理しなければならない他の方法を受け入れています。データは Excel ドキュメントから取得されていますが、残念ながら、ロード プロセスに入る前にデータの事前検証は行われません。

4

1 に答える 1

5

私のソリューションを式空間に限定すると、探しているツールはCODEPOINTです。最初に見つかった文字の整数値を返します。便利なASCIIテーブルを用意CodePointして、ソース列の 1 番目と 2 番目の文字を呼び出し、値が AZ の文字範囲内にあることをテストする必要があります。

これは最初の文字のテストで、CODEPOINT(Src)これは 2 番目の文字のテストですCODEPOINT(SUBSTRING(Src,2,1))

そのロジックをまとめると、この醜い表現になります

(CODEPOINT(SUBSTRING(Src,2,1)) >= 65 
    && CODEPOINT(SUBSTRING(Src,2,1)) < 91) 
&& (CODEPOINT(Src) >= 65 
    && CODEPOINT(Src) < 91) ? true : false

ここに画像の説明を入力

私の経験則では、式がスクロールして画面からはみ出す場合は、ロジックをスクリプト コンポーネントにドロップすることを好みます。それまたは私は、メンテナンスを容易にするため、複数の派生列コンポーネントに分割します。

于 2013-10-07T17:52:32.813 に答える