Oracle数据库循环创建10000张表

declare 

    v_sql varchar2(1000);

begin

    -- 创建表  t1

    v_sql := 'create table t1(';

    for in 1..20 loop

       v_sql := v_sql || 'v' || x || ' varchar(100),';

       v_sql := v_sql || 'n' || x || ' number,';

    end loop;

    v_sql := substr(v_sql, 1, length(v_sql) -1);

    v_sql := v_sql || ')';

    -- dbms_output.put_line(v_sql);

    execute immediate v_sql; 

    -- 插入 100 条记录

    for in 1..100 loop

        v_sql := 'insert into t1(v1,n1,v2,n2) values(:0, :1, :2, :3)';

        execute immediate v_sql using x, x, x, x;

    end loop;

    -- 复制 另外  19 张表 t2 - t20

    for in 2..20 loop

        v_sql := 'create table t' ||  x || ' as select * from t1';

        execute immediate v_sql;

    end loop;

end;

/

 

declare

v_sql varchar2(1000);

begin

  for x in 100..10000 loop

    v_sql := 'create table "/tbc/tt/t0'||x||'" as select * from "/PAO/PIN/PP01"';

    execute immediate v_sql;

  end loop;

end;

 

 

你可能感兴趣的:(Oracle)