在初學Oracle時,我們需要導入數據到Oracle數據庫,方法有很多種。在這裡主要介紹通過sqllder從csv導入數據到Oracle的方法。讓我們一起學習下。
一、關於CSV文件添加到Oracle的方法。我有一個EXCEL的文件Prize_VS.xls,由姓名、身份證編號、通信地址、郵政編碼四列組成,在Excel中將Prize_VS.xls另存為Prize_VS.csv,現在來向我的Oracle服務器上的表增加數據。進行最後操作前,在Prize_VS.csv所在的目錄下新建文本文件input.ctl,內容為:
- load data
- infile 'Prize_VS.csv'
- append into table 方案名.Prize_VS
- trailing nullcols
- (NAME terminated by ",",
- IDCARD terminated by ",",
- ADDREASS terminated by ",",
- POSTALCODE terminated by ",")
保存後在DOS方式進入input.ctl所在的目錄下執行sqlldr命令:
- sqlldr 用戶名/密碼@服務名 control=input.ctl
OK後可以在input.log文件中看到執行的具體記錄,有問題的數據則集中在Prize_VS.bad,你可以在修改後繼續上一步的操作,直到你滿意為止。
二、使用sqllder導csv文件時,如果某一欄位的值來源於sequence,在導入時該如何指定該欄位的值?
比如,現在是使用sqllder從csv文件向表test導入數據,其中test有field_a, field_b, field_c三個欄位,並且field_c的值來源於sequence_fIEld_c;那麼控制文件可這樣寫:
- LOAD DATA
- INFILE 'C:\test.csv '
- TRUNCATE INTO TABLE test
- FIELDS TERMINATED BY ', '
- (field_a, field_b, field_c "sequence_fIEld_c.nextval")