oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

1.一种是只要数据条数,至于里面内容可以是序列方式,另外可能几个表中相互

id的关联,那建议用存诸过程写.

表a(id,name)有学员的信息

表b(id,testid,subject,score)有学员的考试成绩

假设表a与表b的id都是有seq的自增长系列;表b.testid=表a.id,现需要构造一

千个学员和科目学分。

以下存储过程内容:

declare

cnt number;

mytestid number;

myname varchar2(32);

mysubject varchar2(32);

cnt:=1;

myname:="studentname"

mysubject:="subjectname"

loop

if (cnt<=1000)then

select seq_a.nextval into mytestid from dual;

insert into a (id,name) values (mytestid,myname||cnt);

insert into b(id,testid,subject,scre)values

(seq_b.nextval,mytestid,mysubject||cnt,80);

cnt:=cnt+1;

else

exit;

end id;

end loop;

commit;

end;

另一种方法:数据的内容要多样化,且内容要真实一些,不可以是用cnt的内容,

那建议用cvs的方式准备好各类内容数据,运行一个脚本即可。

假设学员信息表A已有,现需要1000条真实科目分数数据。

第一步:先准备ctl脚本:如:b.ctl (可以用记事本方式写)

1.options (skip=1,rows=100)

2.load data

3.infile "b.csv"

4.truncate

5.into table b

6.fields terminated by ","

7.optionally enclosed by '"'

8.trailing nullcols

9.(

10. id "seq_b.nextval",

11. testid,

12. subject,

13. score

14 )

以上ctl每行详细说明:

1.skip 跳过csv文件的第一列(一般第一列为列名);rows表示每次取多少条运

行,分批运行减少性能问题

3.是你csv的文件的名字

4.写入数据库的方式:truncate为清除表中数据后,写入csv中的内容;append

为直接把csv中内容追加入数据库;主要用到这二个,其他不介绍了。

5. 写入数据库的表名

6,7行建议不要改动,为数据分隔处理用

10-13注意:有seq的,需要像10那样写,如果有date类型,举列,字段列名为

modify_time的则写成: modif_tiyme date‘yyyy-mm-dd hh24:mi:ss'

第二步:准备b.CSv内容,请xls里直接录入即可

csv第一列 id testid subject score

第三步:用sqlldr执行

注意:oracle客户端装好后,要把oracle\bin目录加到环境变量里去,这样才能

使用sqlldr.exe可执行文件

步骤:

在你的windows端,打开,点运行,录入cmd,切换到你存上面二个文档的目录

然后录入以下格式:sqlldr 数据库登录名/密码@数据库名  control=b.ctl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值