【问题标题】:Teradata error - importing timestamp column with null valuesTeradata 错误 - 导入具有空值的时间戳列
【发布时间】:2019-12-17 09:47:03
【问题描述】:

我在分隔符文件中有一个时间戳列,格式为“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'))
请帮忙。

【问题讨论】:

    标签: teradata-sql-assistant


    【解决方案1】:

    SQL 助手希望 NULL 由您在 Tools / Options / Data Format 中指定为“显示此字符串用于 Null 数据值”。

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

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

    【讨论】:

    • 非常感谢。在我更改了 Sql 助手中的选项后它就可以工作了。
    猜你喜欢
    • 2020-01-26
    • 2023-03-11
    • 2020-12-11
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 2017-01-21
    相关资源
    最近更新 更多