【oracle】【demo】批量造數據
方式1:使用 dbms_random函數 和 connect by level 執行insert語句多次
示例:
create sequence seq_id
minvalue 1001
start with 1001
nomaxvale
increment by 1
no cycle
cache 30;
/
select seq_id.nextval from dual;
inser into t_student(id,name,age)
select
seq_id.nextval as id,
dbms_random.string('a',8) as name,
dbms_random.value(20,24) as age
from dual
connect by level <= 10; --迭代 執行 sql 10次
drop sequence seq_id;
方式2:創建 procedure 使用循環體
create or replace produce prc_insert_data(vn_id in number)
as
vv_name varchar2(64) default 'Kitty';
vn_age number := 20;
exec_sql varchar2(100);
begin
for i in 1..10
loop
inser into t_student(id,name,age)
values(vn_number+i,vv_name||to_char(i),vn_age+i);
end loop;
exec_sql := 'commit';
execute immediate exec_sql;
end;
/
call prc_insert_data(1000);
drop produce prc_insert_data;
方式3:匿名塊
declare
vv_name varchar2(64) default 'Kitty';
vn_age number := 20;
exec_sql varchar2(100);
begin
for i in 1..10
loop
inser into t_student(id,name,age)
values(vn_number+i,vv_name||to_char(i),vn_age+i);
end loop;
exec_sql := 'commit';
execute immediate exec_sql;
end;
/