Oracle 高速批量資料載入工具sql*loader使用說明

來源:互聯網
上載者:User

SQL*Loader(SQLLDR)是Oracle的高速批量資料載入工具。這是一個非常有用的工具,可用於多種一般影像檔案格式向Oralce資料庫中載入資料。SQLLDR可以在極短的時間內載入數量龐大的資料。它有兩種操作模式。
傳統路徑:(conventional path):SQLLDR會利用SQL插入為我們載入資料。
直接路徑(direct path):採用這種模式,SQLLDR不使用SQL;而是直接格式化資料庫塊。
利用直接路徑載入,你能從一個一般檔案讀資料,並將其直接寫至格式化的資料庫塊,而繞過整個SQL引擎和undo產生,同時還可能避開redo產生。要在一個沒有任何資料的資料庫中充分載入資料,最快的方法就是採用並行直接路徑載入。

要使用SQLLDR,需要有一個控制檔案(control file)。 控制檔案中包含描述輸入資料的資訊(如輸入資料的布局、資料類型等),另外還包含有關目標表的資訊。控制檔案甚至還可以包含要載入的資料。

1. 建立一個控制檔案demo1.ctl,內容如下: 複製代碼 代碼如下:LOAD DATA
INFILE *
INTO TABLE DEPT
FIELDS TERMINATED BY ','
(DEPTNO, DNAME, LOC )
BEGINDATA
10,Sales,Virginia
20,Accounting,Virginia
30,Consulting,Virginia
40,Finance,Virginia

LOAD DATA :這會告訴SQLLDR要做什麼(在這個例子中,則指示要載入資料)。SQLLDR還可以執行CONTINUE_LOAD,也就是繼續載入。
INFILE * :這會告訴SQLLDR所要載入的資料實際上包含在控制檔案本身上,如第6~10行所示。也可以指定包含資料的另一個檔案的檔案名稱。
INTO TABLE DEPT :這會告訴SQLLDR要把資料載入到哪個表中(在這個例子中,資料要載入到DEPT表中)。
FIELDS TERMINATED BY ‘,':這會告訴SQLLDR資料的形式應該是用逗號分隔的值。
(DEPTNO, DNAME, LOC) :這會告訴SQLLDR所要載入的列、這些列在輸入資料中的順序以及資料類型。這是指輸入資料流中資料的資料類型,而不是資料庫中的資料類型。在這個例子中,列的資料類型預設為CHAR(255),這已經足夠了。
BEGINDATA :這會告訴SQLLDR你已經完成對輸入資料的描述,後面的行(第7~10行)是要載入到DEPT表的具體資料。
2. 建立一個空表dept 複製代碼 代碼如下:create table dept
( deptno number(2) constraint dept_pk primary key,
dname varchar2(14),
loc varchar2(13)
)
/

3. 載入資料 複製代碼 代碼如下:sqlldr userid=lwstest/netjava control=d:\demo1.ctl

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.