shell通過sqlldr命令將數據文件導入到數據庫


前段時間了解到了sqlldr這個功能,感覺很不錯就嘗試着搞一下。我也是通過查閱網上的資料了解並實驗的。
sqlldr的作用是將數據文件導入數據庫的表,只支持單個文件的導入。
不過可以使用循環或者數據文件合並來實現多個文件的導入。
利用sqlldr進行數據文件的導入只要兩步:
1.寫一個ctl格式的文件(用於說明接收表的一些信息)

參數說明:
load data -- 1. 控制文件標識

  之后是對表的操作類型:insert:     默認值,在空表中插入記錄,如果表不為空則會報錯。    
                                         append:  在表中追加新記錄。                
                                         replace:替換,將舊的記錄去掉(用delete語句),添加上新的信息。
                                         truncate:替換,將舊的記錄去掉(用truncate語句),添加新的信息。
                                         FIELDS TERMINATED BY "":數據分隔符。
                                        TRAILING NULLCOLS:當數據文件對應字段是空值時,表中對應字段就以null插入。

2.寫入導入語句:

參數說明:
userid:數據庫的賬號密碼用戶串
control:控制文件,也就是第一步寫的的文件
log:日志文件,記錄執行信息。
bad:壞數據文件,出現錯誤的記錄會出現在該文件中
data:數據文件名字
parallel:不會鎖住加載表,可以同時讓多個sqlldr語句操作一個表導入數據,這樣不安全,一般用false。
direct:Direct導入可以跳過數據庫的相關邏輯(DIRECT=TRUE),而直接將數據導入到數據文件中,但是這樣可能會破壞表的結構,一般用false。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM