oracle資料庫sqlldr命令的使用

來源:互聯網
上載者:User

標籤:ror   error   匯入失敗   輸入   user   tab   lag   命令   限制   

 將資料匯入 oracle 的方法應該很多 , 對於不同需求有不同的匯入方式 , 最近使用oracle的sqlldr命令 匯入資料庫資料感覺是個挺不錯的技術點 。  使用sqlldr命令 將文字檔匯入 oracle中大致需要兩步 :

第一步:編寫ctl控制檔案

Load data --裝載資料(第二步中會具體講一下資料檔案的來源位置)

CHARACTERSET ‘UFT8‘ --匯入字元集格式
Append --這個屬性意思是在資料庫中原來資料基礎上追加自己的資料,不改變原來的資料,有興趣的還可以瞭解其他屬性replace等
into table int_demo_student_b --插入資料庫所對應得表
fields terminated by X‘1B‘ --分隔字元,用於分割資料檔案中對應屬性資料的分割符號 我用的是ESC鍵分割 ,還有 X‘09‘ 等於逗號分割
TRAILING NULLCOLS --空列賦值,如果不加這個屬性,當資料檔案中有空值時,就會跳過空值,這樣匯入的資料就出現錯位了,所以加了這個屬性就可以避免空值錯位
(
stu_id, --欄位,欄位的順序和資料庫的順序一致
stu_name,
stu_class,
stu_age,
stu_sex,
stu_subject,
comment char(260), --截位操作,在做匯入的時候,ctl匯入屬於檔案流匯入,當欄位字元長度超過255位就會匯入失敗,如果這樣就需要加這個屬性來約束就不會匯入失敗了
import_flag constant "0", --預設賦值,如果原來資料檔案中沒有的欄位,而自己需要在自己資料庫表中增加某個欄位,就需要添加預設值constant
err_msg constant " "
)

第二步:使用cmd命令視窗中輸入命令sqlldr命令運行 最後按下斷行符號鍵

   ->  sqlldr  userid = 使用者名稱 / 密碼 @ 資料庫名  data=資料檔案地址   control = ctl控制檔案地址     bad = D:/ bad.bad 錯誤記錄檔   log =D:/log.log 日誌記錄

還可以在命令中輸入rows deirect silent errors等屬性來限制匯入的行數等其他條件,有興趣的可以自己瞭解下

  

目前地址資料都是固定的,在實際應用一般都會通過定義變數來使用,這樣可以重複使用。

 

oracle資料庫sqlldr命令的使用

聯繫我們

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