SQL*LOADER操作篇

Oracle SQL Loader的详细语法
SQL*LOADER
ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECTPARALLEL)。NT下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload


需求一、单数据文件导入一张数据表中

文字是苍白的,事例才是震撼的,所以举例说明:

1、创建测试表:

create table test_loader_1(id number(4),name varchar2(20));

2、创建一个bat文件(在windows下可以直接调用命令行的)

sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true--特别注意,一个sqlldr只能写一个控制文件

3、创建一个控制文件.ctl文件

LOAD DATA
INFILE 'D:\sqlloader\test1.txt'
APPEND INTO TABLE test_loader_1
FIELDS TERMINATED BY X'09'--(Tab分隔符)
TRAILING NULLCOLS
(ID,NAME)

4、创建数据文件test1.txt,内容为

1 a

2 b

准备工作已经结束,直接点击bat,之后查询test_loader_1表,就会看到有两条数据。

需求二、多数据文件导入一张数据表中

1、创建测试表:

create table test_loader_1(id number(4),name varchar2(20));

2、创建一个bat文件(在windows下可以直接调用命令行的)

sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

3、创建一个控制文件.ctl文件

LOAD DATA
INFILE 'D:\sqlloader\test1.txt'
INFILE 'D:\sqlloader\test2.txt'

APPEND INTO TABLEtest_loader_1
FIELDS TERMINATED BY X'09'--(Tab分隔符)
TRAILING NULLCOLS
(ID,NAME)

4、创建数据文件test1.txt和test2.txt,内容为

test1.txt

1 a

2 b

test2.txt

3 c

4 d

准备工作已经结束,直接点击bat,之后查询test_loader_1表,就会看到数据在里面了。

需求三、单数据文件导入多张数据表中

1、创建测试表:

create table test_loader_1(id number(4),name varchar2(20));

create table test_loader_2(id number(4),name varchar2(20),password varchar2(20));

2、创建一个bat文件(在windows下可以直接调用命令行的)

sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

3、创建一个控制文件.ctl文件

LOAD DATA
INFILE 'D:\sqlloader\test1.txt'
APPEND INTO TABLEtest_loader_1
WHEN TAB='ABC'
FIELDS TERMINATED BY X'09'
TRAILING NULLCOLS
(TAB FILLER POSITION(1:3),ID,NAME)
INTO TABLEtest_loader_2
WHEN TAB='CBA'
FIELDS TERMINATED BY X'09'
TRAILING NULLCOLS
(TAB FILLER POSITION(1:4),
ID,
NAME,
PASSWORD
)

4、创建数据文件test1.txt内容为

test1.txt

ABC1 a

ABC2 b

CBA3 c

CBA4 d

准备工作已经结束,直接点击bat,之后查询test_loader_1和test_loader_2表,就会看到数据在里面了。

需求四、多数据文件导入多张数据表中

1、创建测试表:

create table test_loader_1(id number(4),name varchar2(20));

create table test_loader_2(id number(4),name varchar2(20),password varchar2(20));

2、创建一个bat文件(在windows下可以直接调用命令行的)

sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

3、创建一个控制文件.ctl文件

LOAD DATA
INFILE 'D:\sqlloader\test1.txt'

INFILE 'D:\sqlloader\test2.txt'

APPEND INTO TABLEtest_loader_1
WHEN TAB='ABC'
FIELDS TERMINATED BY X'09'
TRAILING NULLCOLS
(TAB FILLER POSITION(1:3),ID,NAME)
INTO TABLEtest_loader_2
WHEN TAB='CBA'
FIELDS TERMINATED BY X'09'
TRAILING NULLCOLS
(TAB FILLER POSITION(1:4),
ID,
NAME,
PASSWORD
)

4、创建数据文件test1.txt内容为

test1.txt

ABC1 a

ABC2 b

CBA3 c

CBA4 d

test2.txt

ABC1 a

ABC2 b

CBA3 c

CBA4 d


准备工作已经结束,直接点击bat,之后查询test_loader_1和test_loader_2表,就会看到数据在里面了。

目前没有解决的问题就是在第四种情况下,能精确指定每个表对应的数据文件是哪个,这样的话不用WHEN TAB='CBA'进行字符串匹配,很节约CPU运算,文档中没提这事。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值