SQL*Loader控制文件是一个简单的文本文件,其中规定了数据装载作业的重要细节,例如源数据文件的位置。可在控制文件内规定装载过程中的转换内容。控制文件包含装载日志文件名和捕获坏数据和拒绝数据的文件名。控制文件在以下SQL*Loader会话的各个方面对SQL*Loader发出指示:
(1) 装载到数据库的数据来源;
(2) 目标表的列规格说明:
(3) 输入文件格式的特性;
(4) 输入文件字段到表列的映射;
(5) 数据转换规则(应用SQL函数),
(6) 日志文件和错误文件的位置。
SQL*Loader把源数据文件中的数据行视为记录,可在控制文件中说明记录格式。注意,也可以对数据使用独立的文件。在这个例子中,可以看到控制信息后跟要直接插入的数据,在控制文件中用INFILE,来说明。此说明指出,要装载的数据将跟随在装载控制信息之后。如果只进行一次数据装载,最好是简单一些,直接把数据放在控制文件中。关键字BEGINDATA告诉SQL*Loader,控制文件的数据部分从哪里开始。
典型的SQL*Loader控制文件
LOAD DATA
INFILE *
BADFILE test.bad
DISCARDFILE test.dsc
INSERT
INTO TABLE tablename
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ""
(
column1 POSITION (1:2) CHAR,
column2 POSITION (3:9) INTEGER EXTERNAL,
column3 POSITION (10:15) INTEGER EXTERNAL,
column4 POSITION (16:16) CHAR
)
BEGINDATA
AY3456789111111Y
/* Rest of the data here . . .*/
控制文件的描述数据字段部分称为字段列表(field list)。在代码清单13.1的控制文件中,字段列表为:
(
column1 POSITION (1:2) CHAR,
column2 POSITION (3:9) INTEGER EXTERNAL,
column3 POSITION (10:15) INTEGER EXTERNAL,
column4 POSITION (16:16) CHAR
)
此字段列表给出了字段名、位置、数据类型、分隔符和适用条件。
在控制文件中可以指定许多变量,可把这些变量大致分成以下几组:
(1) 与装载有关的子句;
(2) 与数据文件有关的子句;
(3) 表和字段映射子句;
(4) 控制文件中的命令行参数。
提示 如果不能确定应该使用哪些参数执行SQL*Loader,可在操作系统提示符下输入sqlldr,查看所有可用的选项.屏幕上将会显示出所有参数及它们的特定操作系统默认值(如果有的话)的完整清单.




