sqlldr 導入csv

現有csv或txt文件要導入到oracle數據庫中,那麼選用sqlldr來導入是效率很高的(在一臺配置爲cpu1.8G雙核 2G內存的機器上, 將一個72列65M的表導入只用了40秒)。

數據庫表:students(name age birth sex)姓名 年齡 出生日期 性別

新建文件insert.ctl,內容如下:

load   data   
infile   'students.csv'   
append   into   table   wp.students  
fields terminated by ',' 
trailing   nullcols   
(

   name ,

   age ,
   birth date,

   sex filler

)

說明:

1  infile   'students.csv'指明要讀取的文件

2  append   into   table   wp.students 指明是追加的方式添加數據,即數據庫原數據保留。wp是用戶,student是要寫入數據的表

3  fields terminated by ',' 指明數據間有分隔符是逗號

4  sex filler指明這一列不讀取

5  如果日期類型特別精確時,如:2009-12-09 12:38:24 可以寫成birth date "YYYY-MM-DD HH24:MI:SS"

6  若csv文件中的日期過長,如:2009-12-09 12:38:24.000 可以寫成birth "to_date(substrb(:birth , 1, 19), 'YYYY-MM-DD HH24:MI:SS')"

7  若值可能爲空,可以寫爲 birth "case when :in_time='null' 
                                        then null
                                        else to_date(substrb(:birth, 1, 19), 'YYYY-MM-DD HH24:MI:SS')
                                        end"

運行命令行,進入insert.ctl所在的路徑,鍵入:

sqlldr wp/wp control=insert.ctl

即可導入。在該路徑下會生成日誌。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章