这是boss突然给的任务,让暴力测试数据库,快速的插入大量的数据,但是因为我之前没有接触过,所以耗费了一些时间。
(1)最终解决办法是使用oracle数据库定义了存储过程。使用了while循环,
<span style="font-size:18px;">create or replace procedure insert_url(x in number) is
i number(4,2);
begin
i :=1;
while i < 10 LOOP
begin
i:= i + 1;
insert into table1 (id, c1, c2, c3, c4, c5, c6, c7, c8)
values (big_cfg_seq.nextval, 1, 1, 1, 16, '0', 1, 16, to_date('05-1-2015 18:00:00', 'dd-mm-yyyy hh24:mi:ss'));
insert into table2 (id, c1, c2, c3,c4, c5, c6, c7, c8, c9, c10, c11)
values (big_cfg_seq.currval, 1, 'duhihis', 0, 0, 0, 1, null, null, null, null, null);
end;
end LOOP;
end insert_url;</span>
(2)调用存储过程的几种方法:
如果是在应用程序(Java等)中调用存储过程,需要根据相应语言的语法来进行。这个可以通过查找相应语言的帮助来找到。
如果是在Oracle的其他存储过程中调用,直接写存储过程名就可以了。传入相应的参数,即可执行。
如果在Oracle的命令行中,使用EXEC 存储过程名(参数) 的方式即可调用。
如果存储过程执行的语句写在SQL文件中,则可以通过调用文件的方式执行,即SQL> @D:\SQL\example.sql的形式
(3)因为最近在学shell脚本,所以我是写了一个简单的脚本,来执行这个存储过程.
sqlplus username/password@ip地址:端口/服务名称<<EOF exec insert_url(1); EOF