1. 程式人生 > >oracle數據庫sqlldr命令的使用

oracle數據庫sqlldr命令的使用

int AR 默認 pla 失敗 位置 .com 應該 col

將數據導入 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命令的使用