技术开发 频道

ORCLE 数据库备份与恢复之二:SQL*Loader

2.1 基本知识

Oracle 的  SQL* LOADER  可以将外部格式化的文本数据加载到数据库表中。通常 与 SPOOL导出文本数据方法配合使用。
 
1令格式
 
SQLLDR keyword=value [,keyword=value,...]
例:
$ sqlldr user/pwd control=emp.ctl data=emp.dat bad=emp.bad log=emp.log
 
2制文件
 
SQL*LOADER  根据控制文件可以找到需要加载的数据。并且分析和解释这些数
据。
控制文件由三个部分组成,具体参数参考帮助文档:
1.  全局选件,行,跳过的记录数等;
2. INFILE 句指定的输入数据;
3.  数据特性说明。
comment: --注释
例:
load data infile *
append    --除了 append外,还有 insert、replace、truncate等方式
into table emp
fields terminated b y ‘|’
(
no             float external, name char(20),
age           integer external,
duty         char(1),
salary      float external,
upd_ts     date(14) ‘YYYYMMDDHH24MISS’
)
begindata
100000000003|Mulder|000020|1|000000005000|20020101000000
100000000004|Scully|000025|2|000000008000|20020101235959
 
控制文件中 infile选项跟 sqlldr 命令行中 data 选项含义相同,如使用 infile *表明
据在本控制文件以 begin data 头的区域内。 一些选项
FIELDS TERMINATED BY WHITESPACE FIELDS TERMINATED BY x'09'
FILLER_1 FILLER, //  指定某一列将不会被装载
DEPTNO position(1:2), DNAME position(*:16), //  指定列的位
SEQNO RECNUM //入每行的行号
SKIP n          //  指定导入时可以跳过多少行数据
 
3数据文件
 
控制文件数据格式定义的数据行集,例:
100000000001|Tom|000020|1|000000005000|20020101000000
100000000002|Jerry|000025|2|000000008000|20020101235959
 
 
定格式、可变格式、流记录格式:
定格式
当数据固定的格式(长度一样)时且是在文件中得到时,要用 INFILE "fix n"
load data
infile 'example.dat' "fix 11"
into table example
fields terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7)) example.dat:
001, cd, 0002,fghi,
00003,lmn,
1, "pqrs",
0005,uvwx,
变格式:
当数据是可变格式(长度不一样)时且是在文件中得到时,要用 INFILE "var n"。如:
load data
infile 'example.dat' "var 3"
into table example
fields terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7)) example.dat:
009hello,cd,010world,im,
012my,name is,
流记录格式: // Stream-recored format:
load data infile 'xx.dat' "str '|\n'"
 
into table xx field terminated b y ',' optionally enclosed by '"'
(col1 char(5), col2 char(7))
 
 
example.dat:
hello, ccd,|
world, bb,|
 
4.  坏文件
 
 
bad=emp.bad
坏文件包含那些被 SQL*Loader拒绝的记录。被拒绝的记录可能是不符合要求的记
录。
 
5.  日志文件及日志信息
 
log=emp.log
当 SQL*Loader  始执行后,它就自动建立  日志文件。日志文件包含有加载的总 结,加载中的错误信息等。
 
0
相关文章