create or replace procedure creat_backup_table(p_n in number,
x_recode out number) is
v_sql varchar2(2000);
v_a varchar2(100);
column_names varchar2(1000);
begin
--表明前缀--
v_a := 'TBL_';
--字段--
column_names := 'COLUMN_1 varchar2(200)';
--每张表定义10个字段--
for i in 2 .. 10 loop
column_names := column_names || ',COLUMN_' || i || ' varchar2(200)';
dbms_output.put_line('column_names: ' || column_names);
end loop;
--创建p_n张表--
for i in 1 .. p_n loop
dbms_output.put_line('all ' || i);
v_sql := 'create table ' || v_a || i || '(' || column_names || ')';
EXECUTE IMMEDIATE v_sql;
commit;
--每张表插入10条数据--
for j in 1 .. 10 loop
v_sql := 'insert into ' || v_a || i || ' values(''value' || j ||
''',''value' || j || ''',''value' || j || ''',''value' || j ||
''',''value' || j || ''',''value' || j || ''',''value' || j ||
''',''value' || j || ''',''value' || j || ''',''value' || j ||
''')';
dbms_output.put_line('v_sql ' || v_sql);
EXECUTE IMMEDIATE v_sql;
end loop;
commit;
end loop;
x_recode := 0;
exception
when others then
x_recode := SQLCODE;
ROLLBACK;
end creat_backup_table;
/*--执行存储过程--
declare
v_count number;
v_output_code number;
begin
-- Call the procedure
v_count := 2;
creat_backup_table(v_count, v_output_code);
dbms_output.put_line(v_output_code);
end;*/