SQL LOADER使用
转自huan.gu专栏:http://blog.csdn.net/gh320/article/details/17048907
1、执行的命令
sqlldr 数据库用户名/密码 control=控制文件名 direct=true
例子
sqlldr apps/apps control=load_user.ctl direct=true
2、字段终止方式
fields terminated by ","
fields terminated by X'09' --字段终止于X'09',是一个制表符(TAB)
3、插入模式
a、insert, 为缺省方式,在数据装载开始时要求表为空
b、append, 在表中追加新记录
c、replace, 删除旧记录,替换成新装载的记录
d、truncate,同上
4、实现具体过程例子:
1) 创建临时表
DROP TABLE cux_user_temp;
CREATE TABLE cux_user_temp
(
seq VARCHAR2(255),
company VARCHAR2(255),
user_name VARCHAR2(255),
descr VARCHAR2(255),
emp_num VARCHAR2(30),
emp VARCHAR2(255),
resp_name VARCHAR2(255),
pwd VARCHAR2(255),
comments VARCHAR2(255),
process_flag VARCHAR2(10),
error_msg VARCHAR2(255)
);
2)将导入模板存成csv数据
--NO 公司 用户名 用户说明 人员编码 人员 职责 密码 备注
3)在ultraedit中打开csv文件执行assii转换utf-8,否则导入数据中中文可能不正常。
DROP TABLE cux_user_temp;
CREATE TABLE cux_user_temp
(
seq VARCHAR2(255),
company VARCHAR2(255),
user_name VARCHAR2(255),
descr VARCHAR2(255),
emp_num VARCHAR2(30),
emp VARCHAR2(255),
resp_name VARCHAR2(255),
pwd VARCHAR2(255),
comments VARCHAR2(255),
process_flag VARCHAR2(10),
error_msg VARCHAR2(255)
);
2)将导入模板存成csv数据
--NO 公司 用户名 用户说明 人员编码 人员 职责 密码 备注
3)在ultraedit中打开csv文件执行assii转换utf-8,否则导入数据中中文可能不正常。
4)如下编写sqlldr控制文件:load_user.ctl
LOAD DATA
INFILE 'user_prod.dat'
BADFILE 'user_prod.bad'
DISCARDFILE 'user_prod.dsc'
INSERT INTO TABLE cux_user_temp
Fields terminated by "," Optionally enclosed by '"'
(
seq ,
company ,
user_name ,
descr ,
emp_num ,
emp ,
resp_name ,
pwd ,
comments
)
5)操作系统执行命令完成sqlloader导入
sqlldr apps/apps control=load_user.ctl direct=true