【问题标题】:Sybase load table: custom date format in delimited fileSybase 加载表:分隔文件中的自定义日期格式
【发布时间】:2016-04-16 06:18:32
【问题描述】:

我需要在 Sybase IQ 中执行批量加载。问题是,我有一个 Sybase 无法立即理解的日期格式 (DD.MM.YYYY)。现在,我可以在加载表语句中指定日期格式,但这会使字段固定宽度,这会导致问题,因为字段也可以为空,在这种情况下,Sybase 会尝试将后续列解析为日期。

数据(组成):

Foo~12.12.2012~Bar
Bar~.~Foo

我尝试了什么:

FooField '~',
datefield '~',
BarField '\x0d\x0a'

不会解析日期

FooField '~',
datefield date('dd.mm.yyyy') NULLS('.'), FILLER('~'),
BarField '\x0d\x0a'

NULL 失败

我在这里打花岗岩,有人解决了类似的问题吗?

【问题讨论】:

    标签: sap-iq


    【解决方案1】:

    您可能应该发布您尝试过的加载表语句。无论如何,使用“DELIMITED BY”可能会很幸运

    LOAD TABLE foobar (
        fooField NULLS(BLANKS),
        dateField DATE('DD.MM.YYYY') NULLS(BLANKS, '.'),
        barField NULLS(BLANKS)
    )
    USING CLIENT FILE '/tmp/fifo'
    ESCAPES OFF
    FORMAT ascii
    DELIMITED BY '~'
    ROW DELIMITED BY '
    '
    ;
    

    IQ 的一个小缺点是在最后一列之后需要一个分隔符,并且该分隔符必须紧跟“ROW DELIMITED BY”字符(我的示例 LOAD TABLE 语句中的换行符)。

    因此,您的数据文件需要看起来更像这样:

    Foo~12.12.2012~Bar~
    Bar~.~Foo~
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      相关资源
      最近更新 更多