工作需求:将unl文件利用shell脚本导入到oracle数据库,这样就可以定期执行shell来导入数据库。
背景:unl文件大小700M,数据量125万条。因为数据量太大,所以不能全部insert,另外,要分开提交,不能一次全部提交,参数用rows来控制,后面会有解释。
数据格式:103096653999363@|#@|#04@|#4240@|#1426@|#翼城县德荣副食部(万村千乡)
oracle表格式与数据格式字段完全对齐
oracle需要写控制文件。
oracle控制文件sql.ctl
load data
infile '/home/nice/data.txt'
append
into table TABLE_TEST_INFO
fields terminated by '@|#'
trailing nullcols
(
MERCH_ID,
AREA,
CODE,
TEST1,
TEST2,
ADDRESS
)
其中append可以替换为
1) insert --为缺省方式,在数据装载开始时要求表为空
2) append --在表中追加新记录
3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录