DM8数据库批量创建表,插入数据,更改表信息,删除测试表
在测试产品的功能和性能的时候需要大量数据表,我们可以通过游标和存储过程批量创建测试表,插入测试数据,更改测试表,删除测试表。
前言
在测试产品的功能和性能的时候需要大量数据表,我们可以通过游标和存储过程批量创建测试表,插入测试数据,更改测试表,删除测试表。
一、批量创建表
通过存储过程批量创建表
批量创建100张表
方法一
--批量创建100张表
DECLARE
i int:=1;
BEGIN
for num in i..100 loop--创建100张表
execute immediate'CREATE TABLE tab_'||i||'( num int primary key ,name varchar(30))';
i:=i+1;
end loop;
end;
方法二
--批量创建100张表
DECLARE
t_sql varchar2(3000);
t_i number(22);
t_count number(22);
BEGIN
t_count:=100;--输入你想创建表的个数
for i in 1..t_count
loop
t_sql:='CREATE TABLE tab_'||i||'( num int primary key ,name varchar(30))';
execute immediate t_sql;
end loop;
end;
方法二是一个模板,几乎万能的,只需要再更改一下sql语句。
二、批量插入数据
通过存储过程插入数据
在指定的表中批量插入数据
BEGIN
for T in 1..100
loop
insert into
SYSDBA.tab_1 values(
T,
repeatstr('pby',3)--批量插入100条,重复3遍的pby
);
if T MOD 100 =0 then
commit;
end if;
end loop;
commit;
end;
方法1:批量创建表并且批量插入数据
declare
v_sql varchar(3000);
v_sql_2 varchar(3000);
v_i number(22);
v_count number(22);
begin
v_count:=100;--批量创建100张表
for i in 1..v_count
loop
v_sql:='CREATE TABLE tab_'||i||'( num int ,name varchar(30))';
v_sql_2:='insert into tab_'||i||' values(1,2)';--批量插入数据
execute immediate v_sql;
execute immediate v_sql_2;
end loop;
end;
方法2:批量创建表并且批量插入数据
DECLARE
i int:=1;
BEGIN
for a in 1..100 loop--批量创建100张表
execute immediate'CREATE TABLE tab_'||i||'( num int ,name varchar(30))';
execute immediate'insert into tab_'||i||' values(1,2)';
i:=i+1;
end loop;
commit;
end;
三、批量更改表信息
通过游标更改表信息
批量给表添加列信息
declare
v_sql varchar2(3000);
CURSOR CUR_TAB IS
SELECT TABLE_NAME from USER_TABLES where TABLE_NAME like 'tab_%';--所有前缀为tab_的表
BEGIN
for GET_TAB in CUR_TAB
loop
v_sql:='alter table ' || GET_TAB.TABLE_NAME ||
' add age varchar(30)';
execute immediate v_sql;
end loop;
end;
四、批量删除测试表
通过游标删除测试表
删除创建的测试表
declare --功能删除所有测试表
v_sql varchar2(3000);
CURSOR CUR_TAB IS
SELECT TABLE_NAME from USER_TABLES where TABLE_NAME like 'TAB_%';
BEGIN
for GET_TAB in CUR_TAB
loop
v_sql:='drop table ' || GET_TAB.TABLE_NAME ;
execute immediate v_sql;
end loop;
end;