暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

oracle SQL-Loader 控制文件

原创 不吃草的牛_Nick 2023-06-25
929

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,查看所有可用的选项.屏幕上将会显示出所有参数及它们的特定操作系统默认值(如果有的话)的完整清单.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论