通過sqllder從csv導(dǎo)入數(shù)據(jù)到Oracle的方法
在初學(xué)Oracle時,我們需要導(dǎo)入數(shù)據(jù)到Oracle數(shù)據(jù)庫,方法有很多種。在這里主要介紹通過sqllder從csv導(dǎo)入數(shù)據(jù)到Oracle的方法。讓我們一起學(xué)習(xí)下。
一、關(guān)于CSV文件添加到Oracle的方法。我有一個EXCEL的文件Prize_VS.xls,由姓名、身份證編號、通信地址、郵政編碼四列組成,在EXCEL中將Prize_VS.xls另存為Prize_VS.csv,現(xiàn)在來向我的Oracle服務(wù)器上的表增加數(shù)據(jù)。進行最后操作前,在Prize_VS.csv所在的目錄下新建文本文件input.ctl,內(nèi)容為:
- 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所在的目錄下執(zhí)行sqlldr命令:
- sqlldr 用戶名/密碼@服務(wù)名 control=input.ctl
OK后可以在input.log文件中看到執(zhí)行的具體記錄,有問題的數(shù)據(jù)則集中在Prize_VS.bad,你可以在修改后繼續(xù)上一步的操作,直到你滿意為止。
二、使用sqllder導(dǎo)csv文件時,如果某一欄位的值來源于sequence,在導(dǎo)入時該如何指定該欄位的值?
比如,現(xiàn)在是使用sqllder從csv文件向表test導(dǎo)入數(shù)據(jù),其中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")
以上就是有關(guān)sqllder從csv導(dǎo)入數(shù)據(jù)到Oracle的方法,希望能對你錄入數(shù)據(jù)有所幫助。
【編輯推薦】