今天同事打电话说帮他导入数据,通pl sql导入非常慢(几个小时都不行)。因此我采用oracle sql loader进行了导入。
1、文本文件有两个字段,因此根据这个生产了表:
SQL> create table rep.tmp_znk_yb(
2 znkh varchar2(11),
3 jmmc varchar2(60)
4 )
5 tablespace rep;
Table created
[@more@]2、在服务器上编写sql loader的ctl文件:
[boss]@db1$more znk.ctl
LOAD DATA
CHARACTERSET ZHS16GBK
INFILE '20110727.txt'
APPEND
INTO TABLE rep.tmp_znk_yb
FIELDS TERMINATED BY ','
(
znkh,
jmmc
)
如果另个字段用空格(即,中间没有标点符号)分割的,则可以将
FIELDS TERMINATED BY ',' 改为FIELDS TERMINATED BY X'09' 即可。
3、在服务器上编写sql loader的sh脚本:
[boss]@boss-db1$more znk.sh
. /export/home/oracle/.bash_profile
cd /export/home/oracle/bcp/bossznk
sqlldr sa/xxx@boss1 control=znk.ctl log=log/znk.log bad=log/znk.bad
echo "mn_imp operation Success!"
4、在服务器上生成log文件夹:
[boss]@xjboss-db1$mkdir log
5、将txt文件上传的服务器,并放到脚本制定的位置。
6、执行脚本:
[boss]@boss-db1$./znk.sh
几分钟就导入完毕,详细执行结果在log目录下的znk.log里。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18841027/viewspace-1053079/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/18841027/viewspace-1053079/