ユーザーは未加工の未変更の入力データを標準化された最終テーブルにマップできます。動的SQLを使用しないカスタムSQL列の式
一般に、特別なロジックを必要とせずに単純な1対1の一致です。
たとえば、 raw_table.raw_col_1、final_table.col_1にマッピングされますraw_table.raw_col_2はfinal_table.col_2にマップされます、など
しかし、一人の顧客は、次のようにfinal_table.col_3をマッピングする必要が能力を望んでいる:
case
when (raw_col_1 = 'S12' and raw_col_2 = 'D18') or raw_col_3 is not null then raw_col_3
else 'GF17'
end
他にも同様の要求があります。
final_tableをロードするときに、動的SQLを使用して簡単にこれを実現できます。しかし、これは私たちにSQLインジェクション攻撃を開放します。
動的SQLを使用せずにこのタイプのカスタムフィールドマッピングを許可できる方法はありますか?
これを可能にする変数をクエリに追加します。 'case when(@var = trueおよびraw_col_1 ...)... else raw_col_3 end' –
私は単純な答えがいいと思います。それは一定ではありません(*他の同様の要求も同様に存在します。*)ので、ユーザー主導型の変動性に対応するためには動的でなければなりません。 –