前兩天,碰到了乙個需求,需要把「.txt」的資料匯入到oracle資料庫中,現在記錄一下:
要匯入的檔案是:lcb_rccr.txt
裡面內容如下:
000000000146@!20110710@!000050000036@!00005@!20110710@!010001@!06362038@!20000.00@!江陰市***xx材料****@!514458198875@!104302200135@!3022402016-10110017876@!江陰市江順模具****@!20110706@!20110711@!000130000026@!20110711@!1@!@!2@!4
欄位和字段之間是使用「@!」來進行分隔的
create table lcb_rccr(
collsq varchar2(20) not null ,
inptdt char(8) not null ,
inptsq varchar2(20) not null ,
inptus varchar2(6) not null ,
inpttm date not null ,
brchno varchar2(10) not null ,
acptno varchar2(40) not null ,
acptam number(18,2) not null ,
drawna varchar2(80) null ,
drawac varchar2(40) null ,
drawbn varchar2(80) null ,
pyerac varchar2(40) null ,
pyerna varchar2(80) null ,
matudt char(8) null ,
procdt char(8) null ,
procsq varchar2(20) null ,
proctm date null ,
proctp char(1) not null ,
dshntx varchar2(160) null ,
collst char(1) not null ,
backnm int null
) ;
檔案lcb_rccr.ctl的內容如下:
options(direct=true,rows=5000)
load data
characterset zhs16gbk
truncate into table lcb_rccr
reenable disabled_constraints
fields terminated by '@!'
trailing nullcols
(collsq,
inptdt,
inptsq,
inptus,
inpttm "to_date(:inpttm,'yyyymmdd')", 注:把文字格式的日期轉換成date型別
brchno,
acptno,
acptam,
drawna,
drawac,
drawbn,
pyerac,
pyerna,
matudt,
procdt,
procsq,
proctm "to_date(:proctm,'yyyymmdd')",
proctp,
dshntx,
collst,
backnm
)
dos命令如下:
sqlldr impdata/123123@jydbdev_194.168.12.70 control=d:/aa/lcb_rccr.ctl errors=1000 rows=1000 data=d:/aa/lcb_rccr.txt log=d:/aa/lcb_rccr_log.txt bad=d:/aa/lcb_rccr_err.txt
impldata/123123是資料庫的登入名和密碼
control = 後面是".ctl"檔案的位置
data = 後面是資料檔案的位置(lcb_rccr.txt檔案的位置)
log = 後面是日誌的位置(這個很重要,第一次匯入的時候,因為日期格式問題,發生了錯誤,就是看日誌檔案找出bug的)
匯入成功。
通過sqlldr將txt檔案匯入oracle資料庫
有個專案每天要往資料庫裡插入大量的資料,峰值大概每秒一萬條左右。如果直接用insert語句,即使使用了批量也效果不是很理想。聽說從檔案匯入的方式效率很高,所以嘗試一下。建立乙個表 create table t 20200310 test phone varchar2 20 byte not null...
sqlldr命令的使用
sqlldr是在cmd下執行的oracle命令,作用是將資料檔案匯入到oracle資料庫中.命令格式 sqlldr username password sid control 檔案路徑 xx.ctl xx.ctl內容 load data infile d ldr diaodubu2.csv 要匯入到...
使用SQLLDR匯入資料
這篇筆記是學習 三思筆記之一步一步學oracle 時做的例子,只是看書,不自己動作做一下,覺得很簡單,但是實際操作一下問題就多多了,先說一下我使用的環境,使用的作業系統是winxp,oracle10.2安裝在vm下的rhe5中,由於winxp和linux換行符的不同,讓我鬱悶了一晚上,第二天早上起來...