將txt文件匯入oracle資料庫的方法有多種,可以通過pl/sql developer裡的text importer工具,但是如果txt文件中的資料量較大,使用text importer會非常慢,感覺像卡住一樣;也可以select for update,直接複製黏貼,但同樣資料量大會很卡。
今天嘗試使用sqlldr工具進行匯入,文字內容大概如下:
2017-05-31 11:46 553200 img_1700x2200_00409074
.tif
2017-05-31 11:46 220044 img_1700x2200_00409075
.tif
2017-05-31 11:46 374104 img_1700x2200_00409076
.tif
2017-05-31 11:46 528762 img_1700x2200_00409077
.tif
2017-05-31 11:46 372416 img_1700x2200_00409121
.tif
2017-05-31 11:46 150092 img_1700x2200_00409122
.tif
2017-05-31 11:46 247410 img_1700x2200_00409123
.tif
2017-05-31 11:46 420134 img_1700x2200_00409124
.tif
2017-05-31 11:46 577906 img_1700x2200_00409125
.tif
2017-05-31 11:46 479568 img_1700x2200_00409159
.tif
共4列,以空格分隔,但是空格數量不固定。
1、建立表
create table t1
( rq varchar2(20),
sj varchar2(20),
fjsize varchar2(20),
fjurl varchar2(200)
);
2、建立ctl檔案
load data
infile 'f:\pc\img_1700.txt'
into
table t1
fields terminated by whitespace
trailing nullcols
(rq,sj,fjsize,fjurl)
infile 'f:\pc\img_1700.txt':即將匯入的txt檔案及路徑
into table t1:第一步建立的表
fields terminated by whitespace:以空格分隔,不計空格數量
fields terminated by 『 』:固定以乙個空格分隔
trailing nullcols:代表字段沒有值時,允許為空
*****
*****
*** 以下是4種裝入表的方式
insert // 裝載空表 如果原先的表有資料 sqlloader會停止 預設值
replace // 原先的表有資料 原先的資料會全部刪除
truncate // 指定的內容和replace的相同 會用truncate語句刪除現存資料
*****
*****
***
3、匯入資料
sqlldr test/test@local11g control=f:\pc\
import
.ctl log
=f:\pc\
import
.log
rows
=10000
import.ctl為第二步建立的控制檔案
匯入100萬行資料大概用了1~2分鐘左右
sqlldr加速:
1、direct匯入可以跳過資料庫的相關邏輯(direct=true),而直接將資料匯入到資料檔案中,可以提高匯入資料的效能。當然,在很多情況下,不能使用此引數(如果主鍵重複的話會使索引的狀態變成unusable!;或者匯入時含有序列)。
2、新增引數
readsize=20971520 bindsize=20971520
sqlldr test/test@local11g control=f:\pc\
import
.ctl log
=f:\pc\
import
.log
rows
=10000 readsize=
20971520 bindsize=
20971520
通過sqlldr將txt檔案匯入oracle資料庫
有個專案每天要往資料庫裡插入大量的資料,峰值大概每秒一萬條左右。如果直接用insert語句,即使使用了批量也效果不是很理想。聽說從檔案匯入的方式效率很高,所以嘗試一下。建立乙個表 create table t 20200310 test phone varchar2 20 byte not null...
MySQL匯入TXT文件
mysql 中匯入txt檔案資料的操作指令 學習總結基本的mysql 資料庫匯入匯出操作 www.2cto.com 1 表tt的格式 create table tt ind int not null auto increment,name char 100 default null,primary ...
sqlldr載入txt資料
首先建立乙個控制檔案load.ctl,名稱可以隨便起,必須以.ctl為檔案型別 內容 解釋 其中分隔符要根據資料檔案的實際分隔符一直,目標表的欄位名不一定是全量的,但是一定要與資料檔案的字段保持一直,並且資料檔案的首行的如果有列名要刪掉 下面就是載入命令 sqlldr userid cms c j ...