sqlldr 匯入txt文件

2021-08-02 05:59:02 字數 2518 閱讀 3618

將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 ...