Oracle SQL Loader 使用範例

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 ;

Oracle DB的listener.log清理