Netezza CSV加载

时间:2016-04-06 10:08:54

标签: csv netezza

我们是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的方式吗?如果是这样的最佳做法是什么?

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

我们如何指定?

2 个答案:

答案 0 :(得分:3)

一般来说,当您的数据中存在记录分隔符时,您需要确保使用反斜杠进行转义。但是,在您的情况下,您可以使用选项加载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'
 )

答案 1 :(得分:-1)

PLZ使用duble slase \

插入DBO.TABLE SELECT * FROM 外部'C:\ log \ FILE.csv' 使用 (  DELIMITER','  MAXROWS 300  logdir'C:\ log'  跳伞1  Y2BASE 2000  编码'内部'  REMOTESOURCE'ODBC'  ESCAPECHAR'\''  )