1. 程式人生 > >文字資料可以這樣匯入資料庫

文字資料可以這樣匯入資料庫

哈嘍,大家好,今天分享一個如何把文字資料快速匯入到Oracle資料庫的一個方法。

首先介紹一下sqlldr工具,它是由Oracle提供,專本用於把文字資料匯入到Oracle資料庫。它需要兩個檔案,一個是文字資料檔案,另外一個是ctl檔案。ctl檔案主要是配置一些引數,比如文字資料的分割符,首行或其他具體行需不需要跳過,匯入到哪張表,欄位都哪些,這些欄位都是什麼屬性等等。

首先我設計的一個表——xs,只有兩個欄位,xuehao,xingming,都是char型。

現在我的文字資料命名為ctl_test.dat,裡面只包含五條資料,每一個欄位都寫在雙引號裡面,欄位與欄位之間用逗號隔開。

"181022","jing"
"181023","heng"
"181024","yuan"
"181025","xin"
"181026","ting"

現在介紹一下CTL檔案。

OPTIONS (skip=0) --設定跳過某行不進行讀取。
LOAD DATA  
INFILE "/home/oracle/Desktop/ctl_test.dat"
--truncate是將表資料清空。預設是insert,但需要truncate將表清空,否則會報錯。append是在原表後面追加。replace是將表中資料進行覆蓋。
append
INTO TABLE xs -- 要插入記錄的表  
Fields terminated by "," -- 資料中每行記錄用 "," 分隔  
Optionally enclosed by '"'--文字資料中的欄位在雙引號裡
trailing nullcols --這裡主要配置表的欄位 ( xuehao, --欄位可以指定型別,預設CHARACTER型別 xingming )

首先看看錶中的原資料。

 

現在執行sqlldr命令。

如上圖左邊所示,資料匯入成功了,這個時候的心情可是無比的喜悅啊。右邊第二個框裡面是執行sqlldr的命令,其中c##test是Oracle資料庫的一個使用者名稱,12345是密碼。

執行成功或失敗之後一般會生成另外兩個檔案,一個是日誌檔案.log,記錄執行結果等。另外一個是.bad檔案,儲存的匯入失敗的資料。其他引數後續再繼續研究學習。