最近我们要做产品的测试,由于里面的数据量太少,上头要我往数据库的表里加上10000条记录。我想如果一条一条地往里加,还不要几个月呀,人也要被累死。所以,我很快地就想到了利用工具加。
就上网搜索,大多介绍的是用SQLLDR工具从excel中导入到Oracle表中。但是写得不是很清楚,如果照着上面的去做,没有成功的。
我就把我的方法,结合从网上搜索到的资料,合并成完整的步骤,希望对大家有所帮助:
方法:
一、在本机安装oracle10g 或11g,再安装PLSQL工具
二、在Oracle 10g/11g 里配置Net Manager,通过这个工具。配置好要连接的数据库
三、运行PLSQL,查询一下你想导入数据的表记录
四、使用SqlLoader工具
1、MicroSoft Excel文件(里面就是你想要导入的内容,和表里的记录格式要一致)(F)→另存为(A)→
保存类型为:制表符分隔,起名为text.txt,保存到C:/
2、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager
创建表结构
SQL> create table test ( idnumber,--序号 usernamevarchar2(10),--用户名 passwordvarchar2(10),--密码sjvarchar2(20) --建立日期);如果有现成的表,创建表结构在此就可以略过了。
3、创建SQL*Loader输入数据所需要的文件,均保存到C:/,用记事本编辑:
控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) --定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
4、在DOS窗口下使用SQL*Loader命令实现数据的输入
C:/>sqlldr userid=system/manager control=input.ctl
默认日志文件名为:input.log
默认坏记录文件为:input.bad
5、连接到SQL*Plus中,查看是否成功输入
我举一个实际的例子吧:
连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager
控制文件:input.ctl,内容如下:
load data
INFILE 'c:/loop.txt'
APPEND INTO TABLE 表名
fields terminated by X'09'
TRAILING NULLCOLS
(字段名1,
字段名2,
字段名3 Date "YYYY-MM-DD
HH24:MI:SS" ,注:这是日期型字段
字段名4 ,
...
字段名n-1,
字段名n)
在本机的DOS窗口下使用SQL*Loader命令实现数据的输入
C:/>sqlldr userid=system/manager@数据库实例名 control=input.ctl