oracle sql Loader 载入数据
一、认识 Oracle sql Loader
oracle自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。但是每个工具都有自己的特点。比如说exp和imp可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据库的热备份和恢复方面。有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问题,这个也许是oracle公司自己产品的兼容性的问题吧。
sql loader 工具却没有这方面的问题,它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。
可以通过安装了Oracle的机器上键入 cmd -> sqlldr 获取帮助。
二、Oracle sql Loader 的一些用法
(1)写控制文件和数据文件型
在c:\wolfeTest文件夹下建立data.txt数据文件,内容如下:
1 wolfe wolfe
2 wolfe1 wolfe1
3 wolfe2 wolfe2
4 wolfe3 wolfe3
5 wolfe4 wolfe4
在c:\wolfeTest文件夹下建立cont.ctl控制文件,内容如下:
load data
infile 'C:\wolfeTest\data.txt'
insert into table ftest
fields terminated by " "
(id,username,password)
Oracle数据库端建立表,结构如下:
CREATE TABLE ftest(
id INT PRIMARY KEY,
username VARCHAR2(100),
password VARCHAR2(100));
cmd -> sqlldr userid=system/wolfe@orcl control=c:\wolfeTest\cont.ctl data=c:\wolfeTest\data.txt
操作成功,再看看你的数据库是不是已经存入数据了呢。
(2)单个控制文件型,在c:\wolfeTest文件夹下建立deptcont.ctl
load data
infile *
into table dept
fields terminated by ','
(deptno,dname,loc)
begindata
10,Sales,Virginia
20,Accounting,Virginia
30,Consulting,Virginia
40,Finance,Virginia
在oracle数据库上建立表dept,结构如下:
create table dept(
deptno number(2) constraint dept_pk primary key,
dname varchar2(14),
loc varchar2(13)
);
在机器上键入以下命令和参数:cmd -> sqlldr userid=system/wolfe@orcl control=c:\wolfeTest\deptcont.ctl
数据插入成功。
几点说明:
1、userid=用户名/密码@数据库名。
2、into table 表名。
3、fields terminated by '字段数据间隔符'。
4、最后一行小括号括起来的是表字段列表:(字段1[,字段2,字段3]... ...)。
5、sqlldr导入的四种加载方式:
APPEND :原先的表有数据 就加在后面 ;
INSERT:装载空表 如果原先的表有数据 sqlloader会停止 默认值 ;
REPLACE :原先的表有数据 原先的数据会全部删除 ;
TRUNCATE :指定的内容和replace的相同 会用truncate语句删除现存数据。
注意的问题:
1、文件和文件夹的命名不能有空格,如果你确实想留空格,请试一试用半角双引号("")将你的文件路径引在里面看是否成功,例如:control="c:\wolfe Test\dept cont.ctl"。(我没试过)
2、Date类型的好像要进行特殊的转化。例如 to_data(... ...)。我也没试过,但是不转的话是不可以插入数据的。
以上是网上文章的小小实验总结,错误的地方请给与纠错,谢谢。

浙公网安备 33010602011771号