【问题标题】:LOAD TABLE statement with NULLable dates带有 NULLable 日期的 LOAD TABLE 语句
【发布时间】:2016-11-18 17:22:05
【问题描述】:

我希望批量加载到一个名为 temp_data 的表中,其中一些列是 NULLable 日期。

这是我到目前为止所拥有的:

LOAD TABLE some.temp_data 
(SomeIntegerColumn ',', SomeDateColumn DATE('YYYYMMDD') NULL('NULL'), FILLER(1), SomeStringColumn ',') 
USING CLIENT FILE '{0}' ESCAPES OFF DELIMITED BY ',' ROW DELIMITED BY '#'

我正在尝试加载以下文件

500,NULL,Monthly#
500,NULL,Monthly#
500,NULL,Monthly#

不幸的是,我得到的错误是:

错误 [07006] [Sybase][ODBC 驱动程序][Sybase IQ]无法转换 NULL,Mon 到某个日期(SomeDateColumn 列)

任何想法为什么这不起作用?

【问题讨论】:

    标签: sybase sap-iq


    【解决方案1】:

    它似乎正在读取第一个分隔符之后的 8 个字符并试图将它们解释为日期。

    尝试切换到 FORMAT BCP。以下示例适用于您的示例文件:

    LOAD TABLE some.temp_data (
        SomeIntegerColumn
      , SomeDateColumn NULL('NULL')
      , SomeStringColumn
    ) 
    USING CLIENT FILE '{0}'
    ESCAPES OFF
    DELIMITED BY ','
    ROW DELIMITED BY '#'
    FORMAT BCP
    

    此外,FORMAT BCP 还具有不需要尾随分隔符的优点。

    【讨论】:

    • 我还可以通过将原始查询中的 FILLER(1) 更改为 FILLER(',') 来使其工作。
    猜你喜欢
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多