我们是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的方式吗?如果是这样的最佳做法是什么?
- 编辑 我们将此问题归结为我们正在导入的某些字段中的逗号,并且导入脚本中未指定任何文本限定符。
我们如何指定?
答案 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'\'' )