你的位置:首页 > 数据库

[数据库]使用sqlldr命令导入资料到Oracle数据库表中的示例说明


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")