301項目中遇到一個問題,醫院的排班信息文件原則上是每個月月底更新,但在試投產期間須要不定時導入。spring
項目中spring管理的任務調度很不靈活,由於每次修改都要重啓服務器。sql
因此暫時採起使用sql loader手工導入。csp那邊採用的C模塊操做文件寫入數據庫,數據庫
相比之下,sql loader強大無比。服務器
只須要2個文件,一行命令。app
文件1.hosinfo.ctlspa
核心文件,控制文件。定義須要導入的文件路徑,分隔符,表名以及字段。io
內容:table
load datased
infile 'd:/hb20110726.txt' //文本路徑file
append into table t_hosinfo_bak //表名
fields terminated by "|" optionally enclosed by '"' // 分隔符 |
TRAILING NULLCOLS //此句定義下方字段中,yiyuanid在txt文本中不存在,只是同時自動插入1.解決了一個很大的阻力。
也能夠吧1換爲序列的nextval 自增主鍵。 若是字段徹底匹配可不寫此句。
(REGDATE,REGROWID,OFFICE,DOCTOR,ZHICHENG,NUMTYPE,TIME,TATOLNO,MONEY,SKILL,OFFICEID,YIYUANID "1")
文件2.需導入的txt文件
命令:在dos下執行 而不須要在sqlplus下執行
sqlldr jpren/jpre control=d:\hosinfo.ctl log=d:\a.log //log路徑記錄信息。