使用sqlldr命令向Oracle匯入資料

2021-06-14 22:34:52 字數 2445 閱讀 2836

前兩天,碰到了乙個需求,需要把「.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換行符的不同,讓我鬱悶了一晚上,第二天早上起來...