SQL*Loader是一个命令行下的操作工具,对应的操作系统命令是SQLLDR,注意Linux/UNIX环境中对命令的大小写敏感,执行的命令应为小写:sqlldr
(1)已知数据库中有表test1
如何把一个.dat的数据文件导入到数据库表test1中呢:
-------test1.dat 定长分隔
10001 chenxicai
10002312 madengmei
10003 chenkeju
10004 LisarDon
10005 tongjiahong
-------test2.dat “|”分隔
20001|liujingjing
20002312|wangyang
20003|zhaoxueqin
20004|yanglele
20005|chengjili
I、先建2个关于它们的控制文件:
-------test1.ctl
load data
infile 'E:\sqlldr\test1.dat'
append into table test1 --追加
(
id position(1:10)
,name position(11:21)
)
-------test2.ctl
load data
infile 'E:\sqlldr\test1.dat'
truncate into table test1 --先删除已有数据再将新数据插入
fields terminated by "|" --双引号
(
id,name
)
II、然后在DOS命令中>sqlldr scott/tiger control='E:\sqlldr\test1.ctl' --注意不带分号
:::::::注意哟::::::::
1、控制文件中注释用“--”
2、为防止导入出现中文乱码,在控制文件中加入字符集控制
LOAD DATA
CHARACTERSET ZHS16GBK
3、让某一列成为行号,用RECNUM关键字
load data
infile *
into table t
replace
( seqno RECNUM //载入每行的行号
text Position(1:1024))
BEGINDATA
fsdfasj
4、过滤某一列,用FILLER关键字
(1)已知数据库中有表test1
如何把一个.dat的数据文件导入到数据库表test1中呢:
-------test1.dat 定长分隔
10001 chenxicai
10002312 madengmei
10003 chenkeju
10004 LisarDon
10005 tongjiahong
-------test2.dat “|”分隔
20001|liujingjing
20002312|wangyang
20003|zhaoxueqin
20004|yanglele
20005|chengjili
I、先建2个关于它们的控制文件:
-------test1.ctl
load data
infile 'E:\sqlldr\test1.dat'
append into table test1 --追加
(
id position(1:10)
,name position(11:21)
)
-------test2.ctl
load data
infile 'E:\sqlldr\test1.dat'
truncate into table test1 --先删除已有数据再将新数据插入
fields terminated by "|" --双引号
(
id,name
)
II、然后在DOS命令中>sqlldr scott/tiger control='E:\sqlldr\test1.ctl' --注意不带分号
:::::::注意哟::::::::
1、控制文件中注释用“--”
2、为防止导入出现中文乱码,在控制文件中加入字符集控制
LOAD DATA
CHARACTERSET ZHS16GBK
3、让某一列成为行号,用RECNUM关键字
load data
infile *
into table t
replace
( seqno RECNUM //载入每行的行号
text Position(1:1024))
BEGINDATA
fsdfasj
4、过滤某一列,用FILLER关键字