データを変換するTeradata PTの機能は、データ型をNULL値に割り当てること、またはデータをNULL値から変更することに限定されます。次はその例です。
CAST (NULL AS INTEGER)
CAST句を使用すると、テーブルにデータをロードする前に代替のデータ型に変換できます。 次のAPPLY文はこのオプションを示しています。
APPLY ('INSERT INTO CUSTOMER (:CUST_NUM, :LAST_NAME, :FIRST_NAME, :SOC_SEC_NO);') TO OPERATOR (LOAD_OPERATOR [1] ) SELECT * FROM OPERATOR (EXPORT_OPERATOR [1]...
ここで、SELECT *を使用することは、Exportオペレータからそのままデータが受け取られることを意味します。ただし、データを変換することもできます。
別のテーブルでデータが必要な場合は、次のAPPLY文を作成します。
APPLY ('INSERT INTO CUSTOMER (:CUST_NUM, :LAST_NAME, :FIRST_NAME, :SOC_SEC_NO);') TO OPERATOR (LOAD_OPERATOR [1] ) SELECT CAST (NULL AS CHAR(10)) AS CUST_NUM, LAST_NAME, FIRST_NAME, CASE WHEN (SOC_SEC_NO <> '000000000') THEN SOC_SEC_NO ELSE NULL END AS SOC_SEC_NO, FROM OPERATOR (EXPORT_OPERATOR [1]...
次のことに注意してください。
- この例では、ソース データのスキーマはターゲット テーブルのスキーマと同じでないと想定しています。
- 最初のフィールドは、NULL値の派生列です。
- ソースのソーシャル セキュリティ番号がすべてゼロ文字の文字列の場合は、ターゲットのソーシャル セキュリティ番号にはNULL値が割り当てられます。
- このCASE式の使用法は、FastLoadユーティリティのNULLIF関数と同等です。
- CASE式が提供するこの機能は、APPLY文で式が許可されるため、すべてのTeradata PTオペレータで利用できます。