使用 INSERT 语句的变形形式和一个全局临时表重新排列导入数据以适合目标表的结构。
前提条件
要创建全局临时表,您必须具有以下一种系统特权:
导入(装载)数据所需的特权取决于 -gl 数据库选项的设置,以及要导入的数据的数据源。有关装载数据所需特权的详细信息,请参见 LOAD TABLE 语句。
要使用 INSERT 语句,您必须是该表的所有者,或者具有以下一种特权:
此外,如果指定 ON EXISTING UPDATE 子句,则您还必须具有 UPDATE ANY TABLE 系统特权,或对该表具有 UPDATE 特权。
在 [SQL 语句] 窗格中,创建结构与输入文件相匹配的全局临时表。
您可以使用 CREATE TABLE 语句创建该全局临时表。
使用 LOAD TABLE 语句将数据装载到全局临时表中。
关闭数据库连接时,全局临时表中的数据就会消失。但是,表定义仍然存在。可以在下次连接数据库时使用它。
使用带有 SELECT 子句的 INSERT 语句从临时表中抽取数据并对其进行汇总,然后将这些数据复制到一个或多个永久数据库表中。
例
以下是上述概括介绍的各个步骤的示例。
CREATE GLOBAL TEMPORARY TABLE TempProducts ( ID integer NOT NULL, Name char(15) NOT NULL, Description char(30) NOT NULL, Size char(18) NOT NULL, Color char(18) NOT NULL, Quantity integer NOT NULL, UnitPrice numeric(15,2) NOT NULL, CONSTRAINT ProductsKey PRIMARY KEY (ID) ) ON COMMIT PRESERVE ROWS; LOAD TABLE TempProducts FROM 'C:\\ServerTemp\\newProducts.csv' SKIP 1; INSERT INTO Products WITH AUTO NAME (SELECT Name, Description, ID, Size, Color, Quantity, UnitPrice * 1.25 AS UnitPrice FROM TempProducts); |
在向 Products 表插入行之前,全局临时表中的各项价格会上调 25%。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |