过几天需要导数据,今天先做个准备工作。由于要导的表结构不一样,数据量也不小,所以想到了sql loader。
首先在网上找到如何将表中的数据生成文本文件,很简单用spool,但过程中还是遇到一些小问题。
SQL> set heading off;
SQL> set lines 200;
SQL> set trims on;(这个很关键)
SQL> spool test.dat
SQL> select col1||','||col2... from t;
SQL> spool off
test.ctl内容:
load data
infile 'test.dat'
into table tablename append
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "'"
(
id,
name
)
test.dat内容:
1,bb
2,aa
3,ef
4,de
5,fr
上面所说的问题就是在这遇到的,一开始没有使用set trims on,导致导出的每行数据后都存在空格,sqlldr总是无法正常导入数据。
$ sqlldr test/test control=test.ctl log=test.log
SQL> select * from tablename;
查看数据,导入成功!!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17997/viewspace-267355/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17997/viewspace-267355/