【问题标题】:Netezza CSV loadNetezza CSV 加载
【发布时间】:2016-07-26 16:02:33
【问题描述】:

我们是 netezza 的新手,目前正在尝试通过脚本将 CSV 文件导入 netezza。

让这个工作的最佳方法是什么。

理想情况下,我们希望 1)创建我们想要的表结构 2) 导入 CSV 并将 CSV 列名映射到我们想要的结构

一站式导入。

此代码返回错误:错误输入行数已达到最大值

INSERT INTO DBO.TABLE
SELECT * FROM
EXTERNAL 'C:\\log\\FILE.csv'
USING
(
 DELIMITER ','
 MAXROWS 300
 logdir 'C:\log'
 SKIPROWS 1
 Y2BASE 2000
 ENCODING 'internal'
 REMOTESOURCE 'ODBC'
 ESCAPECHAR '\'
 )

通过向导导入有效,但我们无法自动执行此操作

Nzload 是要走的路吗?如果是这样,最好的做法是什么?

--编辑 我们将此问题归结为我们正在导入的某些字段中存在逗号,并且在导入脚本中未指定文本限定符。

我们如何指定这个?

【问题讨论】:

  • 你说的“通过向导导入”是指Aginity Workbench中提供的工具吗?

标签: csv netezza


【解决方案1】:

PLZ 使用双斜线\

插入 DBO.TABLE 选择 * 从 外部 'C:\log\FILE.csv' 使用 ( 分隔符',' MAXROWS 300 logdir 'C:\log' 跳绳 1 Y2BASE 2000 编码“内部” 远程 'ODBC' 转义符 '\' )

【讨论】:

    【解决方案2】:

    一般来说,当您的记录分隔符出现在您的数据中时,您需要确保使用反斜杠对其进行转义。但是,在您的情况下,您可以使用允许在列数据周围使用双引号的选项加载 CSV 数据(Netezza 通常不需要)。

    更改您的代码以包含此外部表选项:QUOTEDVALUE 'DOUBLE'

    INSERT INTO DBO.TABLE
    SELECT * FROM
    EXTERNAL 'C:\\log\\FILE.csv'
    USING
    (
     DELIMITER ','
     MAXROWS 300
     logdir 'C:\log'
     SKIPROWS 1
     Y2BASE 2000
     ENCODING 'internal'
     REMOTESOURCE 'ODBC'
     ESCAPECHAR '\'
     QUOTEDVALUE 'DOUBLE'
     )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      相关资源
      最近更新 更多