使用sqlldr命令導入資料到Oracle數據庫表中的示例說明,sqlldroracle
CSV: Comma-Separated Values(逗號分隔值)的縮寫,是以逗號分隔字段的多行文本文件
sqlldr 是sql*loader的縮寫,此工具在安裝完整版的Oracle客戶端後就有
使用sqllldr可以將有規律的文本數據(如csv)導入數據表
導入示例:將csv文本文件andon.txt導入到manpowertest中的testandon表中
testandon表結構
create table TESTANDON
(
build_no VARCHAR2(5),
device_no VARCHAR2(5),
btn_no
VARCHAR2(5),
flag VARCHAR2(1),
data_time DATE
--此為時間格式,導入時要作特殊處理
)
1、用記事本或其它文本軟件創建一個.ctl導入控件文件,此處以C:\andon.ctl為例,內容為
OPTIONS(SKIP=1)
--跳過1行,即跳過csv文件的第一行表頭不導入
load data
infile 'C:\andon.txt'
--要導入的csv文本的路徑
append into table manpowertest.testandon
--要導入到數據庫中哪個表
fields terminated by ","
--要導入的文本是以什麼符號分隔字段的,這裡是逗號
(
build_no, --要導入到表中的哪些字段
device_no,
btn_no,
flag,
data_time timestamp "yyyy-mm-dd hh24:mi:ss"
--由於數據表中此字段類型為date類型,並非文字類型,使用timestamp
"yyyy-mm-dd hh24:mi:ss"進行格式轉換
)
2、在cmd中執行sqlldr命令如下
sqlldr userid=manpowertest/manpowertest@ora32 control=c:\andon.ctl
log=c:\andon.log
附檔1:andon.txt
棟號,設備號,按鈕代碼,開關狀態,觸發時間
A2-1,4,2,1,2014-10-29 15:14:13
A2-1,30,2,0,2014-10-29 14:51:36
A2-2,10,2,0,2014-10-29 14:18:53
A2-2,11,2,0,2014-10-29 15:11:07
A2-2,12,2,0,2014-10-29 14:40:13
附檔2:andon.ctL
OPTIONS(SKIP=1)
load data
infile 'C:\andon.txt'
append into table manpowertest.testandon
fields terminated by ","
(build_no,
device_no,
btn_no,
flag,
data_time timestamp "yyyy-mm-dd hh24:mi:ss")