ITPub博客

首页 > 数据库 > Oracle > SQL_LOADER小结

SQL_LOADER小结

原创 Oracle 作者:wmlm 时间:2007-09-18 10:02:37 0 删除 编辑

关键点: 使用DOS命令,定时批量加载文本文件入库

[@more@]

---- 目录结构 ----
--loader3
|
--bad
--discard
--log
--txt
--txt_bak
doit.bat
ins_log.sql
khxx.bat
khxx.ctl

待处理的文件上传到txt目录下,已处理的文件备份到txt_bak目录下;

---- doit.bat文件内容 ----

dir txt /W /b >todo.txt
for /f %%a in (todo.txt) do @if exist txt\%%a copy /Y txt\%%a txt_bak\%%a
for /f %%a in (todo.txt) do @if exist txt\%%a khxx %%a


---- khxx.bat文件内容 ----

sqlldr sjdr/sjdr@orcl_10.10.10.26 control=KHXX.ctl log=log\%~n1.log bad=bad\%~n1.bad discard=discard\%~n1.dis errors=500 data=txt\%1
sqlplus
sjdr/sjdr@orcl_10.10.10.26 @ins_log "FWZ_KHXX_CTAIS2" "%~f1" "%1" "%~n1.log" "%~n1.bad"
del txt\%1

---- ins_log.sql文件内容 ----
set verify off
set echo off
insert into FWZ_load_log
(tab_name, file_directory, file_name, log_file, bad_file)
values
('&1','&2','&3','&4','&5');

commit;
exit;

---- KHXX.ctl文件内容 ----
LOAD DATA
append
INTO TABLE SJDR.FWZ_KHXX_CTAIS2
FIELDS TERMINATED BY X'09'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
col1 ,
col2 ,
col3 ,
col4 ,
col5 ,
col6 ,
col7 ,
col8 ,
col9 ,
col10 ,
col11 ,
col12 ,
col13 char(1024),
col14 ,
col15 ,
col16 ,
col17 ,
col18 ,
col19 ,
col20 ,
col21 ,
col22 ,
col23 ,
col24 ,
col25 ,
col26 ,
col27 ,
col28 ,
col29 ,
col30 ,
col31 ,
col32 ,
col33 ,
col34 ,
col35 ,
col36 ,
col37 ,
col38 ,
col39 ,
col40 ,
col41 ,
col42 ,
col43 ,
col44 ,
col45 ,
col46 ,
col47 ,
col48 ,
col49 ,
col50 ,
col51 ,
col52 ,
col53 ,
col54 ,
col55 ,
col56 ,
col57 ,
col58 ,
col59 ,
col60 ,
col61 ,
col62 ,
col63 ,
col64
)

-- 待完善的地方有:将日志转存到数据库
-- 添加重复处理bad文件

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/271063/viewspace-969838/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-08

  • 博文量
    398
  • 访问量
    3630036