我们是 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 是正确的选择吗?如果是这样,最好的做法是什么?
- 编辑
我们将此问题归结为我们正在导入的某些字段中存在逗号,并且导入脚本中没有指定文本限定符。
我们如何指定这一点?
一般来说,当数据中存在记录分隔符时,您需要确保使用反斜杠对其进行转义。但是,在您的情况下,您可以使用允许在列数据周围加双引号的选项来加载 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'
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)