Teradata错误-导入带有空值的时间戳列

时间:2019-08-09 16:00:23

标签: teradata-sql-assistant

我在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'))
请帮忙。

1 个答案:

答案 0 :(得分:0)

SQL Assistant期望NULL由您在工具 / 选项 / 数据格式中指定的任何字符串值表示“显示此字符串以获取Null数据值”。

例如,如果NULL由输入数据集中的空字符串指示,则从该选项设置中删除所有字符,以使SQL Assistant将NULL发送到数据库。

或者,您可以在CAST中使用CASENULLIF语句,使数据库将空字符串转换为NULL