【问题标题】:Netezza imports csv as an empty tableNetezza 将 csv 作为空表导入
【发布时间】:2018-05-18 12:09:08
【问题描述】:

我正在使用 INSERT INTO 命令将 CSV 文件导入 Netezza:

INSERT INTO MY_TABLE
    SELECT
        *
    FROM EXTERNAL 'C:\\file.csv'
    USING (
        REMOTESOURCE 'ODBC'
        DELIMITER ','
        MAXERRORS 100000
        SKIPROWS 1
        ESCAPECHAR '\'
    )
;

Netezza“成功”完成了任务,即没有出现错误。但是,根本不导入数据。在 1000 行中,仅导入了 100 行,并且没有任何内容包含任何内容。

我按照Netezza CSV load中的代码进行操作

我也尝试通过外部表导入数据,但以同样的方式再次失败。

我是否遗漏了什么,例如一些关键参数?这个过程以前没有问题。我认为我尝试导入的 csv 文件没有任何问题。

【问题讨论】:

    标签: csv import netezza


    【解决方案1】:

    我终于找到了问题所在,这个帖子里有更详细的解释:

    loading files with dates into netezza

    问题在于导入日期格式。 代码中需要指定以下两行:

    日期样式“DMY”

    DATEDELIM '.'

    【讨论】:

      【解决方案2】:

      根据您提供的链接,我看到了两个可能需要的参数。还有一点可能会产生影响的格式更改。

      INSERT INTO MY_TABLE
      SELECT * FROM 
      EXTERNAL 'C:\\file.csv'
      USING 
      (
          DELIMITER ','
          MAXERRORS 100000
          SKIPROWS 1
          Y2BASE 2000
          ENCODING 'internal'
          REMOTESOURCE 'ODBC'
          ESCAPECHAR '\'
          QUOTEDVALUE 'DOUBLE'
      )
      

      IBM 还有一个数据加载指南,可以在here 找到。

      【讨论】:

      • 谢谢,但没用。
      • 尝试添加带引号的双选项行。它用于指示 Netezza 在列数据周围放置双引号。我修改了上面的代码以反映这种变化。
      • 我已经这样做了,没有任何改变。我真的不明白。
      • 您可以尝试将您的编码更改为 UTF-8 来代替内部编码。你的编辑器变了吗?
      • 确保列在 csv 文件中的显示顺序与表中列的顺序一致。仅仅拥有相同的列名关联是不够的。
      猜你喜欢
      • 1970-01-01
      • 2015-07-04
      • 2015-07-06
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      • 2015-02-15
      相关资源
      最近更新 更多