Aginity for Netezza 使用 ODBC 从外部 xlsx 文件创建临时表

Posted

技术标签:

【中文标题】Aginity for Netezza 使用 ODBC 从外部 xlsx 文件创建临时表【英文标题】:Aginity for Netezza Create Temp Table from external xlsx file using ODBC 【发布时间】:2015-05-27 22:44:20 【问题描述】:

在 Netezza 的 Aginity Workbench 中,我正在尝试从包含 13 列但只需要第 1 列和第 5 列的 .XLSX 文件创建一个临时表。我可以导出到制表符分隔的 .TXT,只需要两列并且它可以工作很好,但我想避免从原始文件转换,因为它会定期更新,其他人可能正在运行这个文件。 必须是 TEMP TABLE 并且必须是 XLSX。临时表将在后续查询中加入。

我有以下疑问:

CREATE TEMP TABLE office AS
(SELECT zip_code, DISPATCH_LEVEL
FROM EXTERNAL 'file.xlsx'
        (zip_code VARCHAR(10), DISPATCH_LEVEL VARCHAR(100))
        USING (REMOTESOURCE 'ODBC' DELIMITER '\t'));

我得到以下错误块:

错误 [HY008] 操作已取消 错误 [01000] 无法写入 nzlog/坏文件 错误 [01000] 无法写入 nzlog/坏文件 错误 [HY000] 错误:外部表:错误输入行数达到最大错误数限制

【问题讨论】:

我相信Unable to write nzlog/bad files 部分的意思是“发生了错误,错误详细信息的记录失败。”换句话说,这是错误处理程序中的错误。我得到这个是因为在 Windows 10 中,默认情况下该进程没有对 c:\ 的写权限 【参考方案1】:

Netezza 外部表根本不直接支持 XLSX 文件。它们需要字符分隔文件、固定长度文件或内部/本机格式文件。

【讨论】:

以上是关于Aginity for Netezza 使用 ODBC 从外部 xlsx 文件创建临时表的主要内容,如果未能解决你的问题,请参考以下文章

保存 Aginity for Netezza 后如何摆脱“外部修改文件”模式

在 Netezza (Aginity) 中安装 UDF

从 Python 到 SQL(Aginity、Netezza)的 CREATE/DROP 调用不起作用

如何在 Netezza(Aginity) 中删除这些记录

Aginity Netezza 宏包含一个列表

Netezza 的 Aginity 工作台不会为大型查询提供语法错误