SQL Loader可以快速將大量的資料匯入Oracle的Table中。
例如有一個檔案test01.csv的資料要上傳到tmp_a的Table上。
一、在資料庫中建立名稱為tmp_a的Table
SQL> create table tmp_a
( a varchar2(20),
b varchar2(10),
c varchar2(10) ) ;
二、準備要匯入的資料,以逗點「,」作為每一欄位的分隔,每一行則為每一筆資料。
至於副檔名可用.csv,好處是excel可以直接開啟並編輯.csv的檔案,儲存之後也是.csv的格式。
test01.csv內容如下:
------------------------
John,boy,001
May,Girl,002
三、準備好SQL*Loader Control File,也就是告訴Oracle要如何匯入的設定檔
import.ctl
------------------------------------------
load data
infile 'test01.txt'
into table tmp_a
fields terminated by ","
( a,b,c )
說明如下:
infile 上傳檔案的路徑及檔名,上面表示與Control File相同目錄
into table 要載入到那一個table,上面表示要載入tmp_a
fields terminated by 欄位與欄位的分隔符號
(a,b,c) 要填入資料的表格欄位名稱
四、執行sqlldr,下列是以Linux為作業系統測試
語法:sqlldr DB帳號/密碼 control=控制檔名
$ sqlldr oracle/password control=import.ctl
SQL*Loader: Release 11.2.0.2.0 - Production on Tue Apr 1 10:43:59 2014
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Commit point reached - logical record count 3
Commit point reached - logical record count 6
預設會在相同的目錄下產生一個與控制檔名相同的log檔,例如import.log,
如有問題,可檢查log內容的錯誤訊息
驗證一下資料是否成功匯入tmp_a中
SQL> select * from tmp_a ;