更新日期:2024年09月11日
要定义外部表,需要使用 SQL 语句来描述数据文件,定义表,然后指定要装入或卸载的
数据。
要设置装入和卸载任务,需要发出以下一系列 SQL 语句:
• CREATE EXTERNAL TABLE,用于描述要装入或卸载的数据文件
• CREATE TABLE,用于定义要装入的表
• INSERT...SELECT,用于执行装入和卸载
以下步骤概述装入过程:
1. CREATE EXTERNAL TABLE 语句描述各个外部文件的位置和外部数据的格式,其
位置可以是磁盘或来自管道(磁带机或直接网络连接)。以下示例描述的是
CREATE EXTERNAL TABLE 语句:
CREATE EXTERNAL TABLE emp_ext
( name CHAR(18) EXTERNAL CHAR(18),
hiredate DATE EXTERNAL CHAR(10),
address VARCHAR(40) EXTERNAL CHAR(40),
empno INTEGER EXTERNAL CHAR(6) )
USING (
FORMAT 'FIXED',
DATAFILES
("DISK:/work2/mydir/emp.fix")
);
2. CREATE TABLE 语句定义要装入的表。以下样本 CREATE TABLE 语句定义
employee 表:
CREATE TABLE employee
FRAGMENT BY ROUND ROBIN IN dbspaces;
3. INSERT...SELECT 语句用于映射外部数据与数据库表之间的移动。 以下样本
INSERT 语句从外部表装入 employee 表:
INSERT INTO employee SELECT * FROM emp_ext
要点: 如果指定多个 INSERT...SELECT 语句来卸载数据,那么每个后续 INSERT 语句将覆盖数据文
件。 请对数据文件使用绝对路径。
将数据装入数据库时,SELECT 子句的 FROM 表部分是 CREATE EXTERNAL 语句定
义的外部表。将数据卸载到外部文件时,SELECT 子句控制从数据库检索数据。
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 254 -
与 TEMP 表不同,外部表在删除之前会在目录中保留定义。创建外部表时,可保存数据
的外部描述,以便复用。将表卸载为 GBase 8s 内部数据表示法后,此操作特别有用,因
为稍后可使用相同的外部表描述来重新装入这些数据。
外部表定义中包含定义外部数据文件中的数据所需的全部信息,如下所示:
• 外部数据中的字段的描述。
• DATAFILES 子句。
该子句指定:
o
数据文件是位于磁盘上还是命名管道上。
o
文件的路径名。
• FORMAT 子句。
该子句指定外部数据文件中的数据格式化类型。数据库服务器转换若干数据格式
的外部数据,这些格式包括定界和固定 ASCII,以及 GBase 8s 内部格式。
• 影响数据格式的任何全局参数。
如果将外部表直接映射到定界格式的内部数据库表中,可使用 CREATE EXTERNAL
TABLE 语句定义列,并添加子句 SAMEAS 内部表,而无需显式枚举列。