データを変換する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オペレータで利用できます。