Netezza 将 csv 作为空表导入
Posted
技术标签:
【中文标题】Netezza 将 csv 作为空表导入【英文标题】:Netezza imports csv as an empty table 【发布时间】: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 文件没有任何问题。
【问题讨论】:
【参考方案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 文件中的显示顺序与表中列的顺序一致。仅仅拥有相同的列名关联是不够的。以上是关于Netezza 将 csv 作为空表导入的主要内容,如果未能解决你的问题,请参考以下文章
将一个表的数据加载到驻留在不同数据库中的另一个表中 - Netezza