导入表的语法

时间:2012-05-25 14:18:48

标签: sql netezza squirrel-sql

将外部表导入已创建的表的语法是什么?每当我右键单击squirrelsql中的表,然后单击导入文件时,我总会收到错误消息“发生数据库错误。我怀疑Netzilla不支持文件导入。如何使用NZload实用程序导入表格?

1 个答案:

答案 0 :(得分:0)

以下是如何使用jdbc加载外部数据的示例。大多数这些命令也可以在nzsql客户端中运行。在您的情况下,只需确保您的表和外部文件的表定义顺序相同,以简化操作。

你在Netezza的真实桌子:

LABDB(ADMIN)=> CREATE TABLE REAL_TABLE (c1 int, c2 char(1), c3 char(1));
CREATE TABLE
Elapsed time: 0m0.047s

要导入的文件:c:\ test.file,内容为:

1|a|x
2|b|z

创建外部表:

LABDB(ADMIN)=> CREATE EXTERNAL TABLE EXT_TEST SAMEAS REAL_TABLE USING (DATAOBJECT('C:\test.file') REMOTESOURCE 'JDBC');
CREATE EXTERNAL TABLE
Elapsed time: 0m0.015s

使用squirrelsql或类似方法检查外部表中的数据: SquirrelSQL Select from EXTERNAL TABLE

显示空的real_table:

LABDB(ADMIN)=> SELECT * FROM real_table;
 C1 | C2 | C3
----+----+----
(0 rows)

Elapsed time: 0m0.063s

现在您可以使用SquirrelSQL或类似工具从外部表插入到您的真实表中: INSERT INTO REAL_TABLE SELECT * FROM EXT_TEST;

最后确认real_table中的数据:

LABDB(ADMIN)=> SELECT * FROM real_table;
 C1 | C2 | C3
----+----+----
  2 | b  | z
  1 | a  | x
(2 rows)

Elapsed time: 0m0.074s

删除外部表,这不会删除您用来加载的文件。

LABDB(ADMIN)=> DROP TABLE EXT_TEST;
DROP TABLE
Elapsed time: 0m0.018s