如何從Oracle 9i SQL*Loader中產生外部表格定義

來源:互聯網
上載者:User

Oracle 9i中引入的外部表格允許您將一個順序文字檔映射到一個Oracle表定義中。一旦您定義了外部表格,您就能應用SQL SELECT語句的所有功能——包括並行查詢——來處理它。 外部表格以SQL*Loader為基礎,但定義它們的文法有所不同。如果您已經熟悉SQL*Loader,就有一條捷徑:應用SQL*Loader本身產生一段為您建立外部表格定義的指令碼。

當您添加一個SQL*Loader命令列時,參數EXTERNAL_TABLE=GENERATE_ONLY,它將把系統使用的控制檔案轉譯成一段SQL指令碼,並輸出到系統的記錄檔中。您可以對記錄檔進行編輯,或複製並粘貼這些代碼到新的指令碼中。

列表A中是一個用來將不同長度的檔案記錄載入到資料庫中的控制檔案。執行下面的命令不會載入行,但會在記錄檔中輸出一個外部表格。列表B中為輸出內容。

sqlldr scott/tiger CONTROL=loademp.ctl

EXTERNAL_TABLE=GENERATE_ONLY

首先,指令碼建立一個指向包含輸入檔案目錄的目錄對象。目錄對象給特定作業系統的完整路徑名取一些簡短、獨立於平台的名稱。用CREATE DIRECTORY命令建立關聯。要這樣做,我們需要具有CREATE ANY DIRECTORY系統許可權,或讓資料庫管理員替您運行它以獲得許可。而且,系統產生的名稱不利記憶。在運行前,最好對指令碼進行編輯,取一個更有意義的名稱。

接下來,指令碼中包含CREATE TABLE語句本身。這個語句參考目錄對象(如果您修改了上面的名稱,對它進行編輯),檔案被載入,執行ORGANIZATION EXTERNAL子句。它還包含描述文字檔布局的文法。

最後,指令碼中包含一個在子查詢的外部表格中選擇的INSERT(插入)語句範例,以及在處理完畢後終止外部表格和目錄的語句。

聯繫我們

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