我在delimter文件中有一个timestamp列,格式为'12 / 04/2018 15:38:42',我正尝试通过Teradata SQL助手导入此文件。我已将此列定义为目标表为
SYSTEM_DT时间戳(0)格式'MM / DD / YYYYBHH:MI:SS'
我正在使用下面的语句导入,它的加载很好,直到它在此列的文件上检测到空值为止。我收到“无效时间戳”错误。
INSERT INTO TARGET_TABLE
VALUES (CAST(? AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MI:SS'),?,?,?)
所以我在下面尝试了,没有用-
1. CAST(COALESCE(? , '01/01/1900 00:00:00') AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MI:SS')
2. COALESCE(CAST(? AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MI:SS'), CAST('01/01/1900 00:00:00' AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MI:SS'))
请帮忙。
答案 0 :(得分:0)
SQL Assistant期望NULL
由您在工具 / 选项 / 数据格式中指定的任何字符串值表示“显示此字符串以获取Null数据值”。
例如,如果NULL
由输入数据集中的空字符串指示,则从该选项设置中删除所有字符,以使SQL Assistant将NULL发送到数据库。
或者,您可以在CAST中使用CASE
或NULLIF
语句,使数据库将空字符串转换为NULL
。