Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 导入和导出数据 » 导入数据

 

用于导入的表结构

源数据的结构不需要与目标表本身的结构相匹配。例如,列数据类型可以不同或者采用不同的顺序,或者导入数据中可能有与目标表中的列值不匹配的其它值。

重新排列表或数据

如果知道要导入数据的结构与目标表的结构不匹配,则可以:

  • 在 LOAD TABLE 语句中提供一个要装载的列名称的列表

  • 使用 INSERT 语句的变形形式和一个全局临时表重新排列导入数据以适合目标表的结构。

  • 使用 INPUT 语句指定列的特定集合或顺序。

允许列包含 NULL 值

如果正在导入的文件包含表中列的子集的数据,或者如果列的顺序不同,则您还可以使用 LOAD TABLE 语句 DEFAULTS 选项填充空白并合并非匹配表结构。

  • 如果 DEFAULTS 为 OFF,则将任何未显示在列列表中且可为空的列置为空值。如果 DEFAULTS 为 OFF 并且列列表中省略了不可为空的列,则数据库服务器会试图将空字符串转换为该列的类型。

  • 如果 DEFAULTS 为 ON 并且列具有缺省值,则使用该值。

例如,可以为 Customers 表中的 City 列定义一个缺省值,然后使用 LOAD TABLE 语句从名为 new_customers.txt 的虚构文件中将新行装载到 Customers 表中,如下所示:

ALTER TABLE Customers
ALTER City DEFAULT 'Waterloo';
LOAD TABLE Customers ( Surname, GivenName, Street, State, Phone )
FROM 'new_customers.txt'
DEFAULTS ON;

由于没有为 City 列提供值,因此提供缺省值。如果早已指定 DEFAULTS OFF,则应已为 City 列指派空字符串。