Oracle SQL*Loader詳解(3) 控制檔案

來源:互聯網
上載者:User

控制檔案是SQL*Loader裡最重要的檔案,它是一個文字檔,用來定義資料檔案的位置、資料的格 式、以及配置資料載入過程的行為,在sqlldr中以control參數指定控制檔案。

在控制檔案裡配置命令列參數 (OPTIONS)

在上一篇中我們講過命令列參數可以配置在三個地方,其中一個就是可以使用控制檔案的OPTIONS字 句(這也是最常用的方式),如下所示:

OPTIONS (DIRECT=true, SILENT=(ERRORS, FEEDBACK) )

更多的命令列參數,請見上一篇。

配置資料檔案(INFILE)

使用INFILE可以配置一個或多個資料檔案,其文法如下:

如果資料包含在控制檔案本身,則用*表示,如:

INFILE  *

在控制檔案的末尾,以BEGINDATA開頭,後面接資料:

BEGINDATA data

如果你有多個資料檔案怎麼辦?很簡單,只要多個INFILE即可,而且還可以為每個INFILE指定各自 的錯誤檔案和丟棄檔案等,如下所示:

INFILE  mydat1.dat  BADFILE  mydat1.bad  DISCARDFILE mydat1.dis INFILE  mydat2.dat INFILE  mydat3.dat  DISCARDFILE  mydat3.dis INFILE  mydat4.dat  DISCARDMAX  10 0

字元集

如果資料檔案的字元集和資料庫的字元集不一樣,SQL*Loader會自動把資料檔案的字元集轉換成數 據庫的字元集,當然前提條件是資料庫的字元集是資料檔案的字元集的超集。

資料庫的字元集可以通過以下SQL語句查詢:

select * from nls_database_parameters;

資料檔案的字元集可以通過控制檔案中的CHARACTERSET參數配置,其文法如下:

CHARACTERSET char_set_name 

如果沒有設定CHARACTERSET參數,資料檔案的字元集由作業系統的NLS_LANG設定。
受到字元集影響的資料類型有:CHAR,VARCHAR,numeric EXTERNAL, datetime, interval

還有一種字元集要特別注意,就是控制檔案本身的字元集(只能由NLS_LANG設定),如果控制檔案 的字元集和資料檔案的不一樣,會先轉換成資料檔案的字元集,但這樣很容易出錯(特別是分隔字元), 因此,實際使用中為了方便,一般把NLS_LANG,CHARACTERSET(如果有的話)設成和資料庫字元集一樣 。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.