博客园 首页 联系 订阅 管理
declare
   old_owner      varchar2(100)  :='';  --定义原schema
   old_table      varchar2(100)  :='';  --定义原表名
    v_sql         varchar2(2000) :='';  --定义拼接语句
    --定义游标
    cursor c_tab is select owner,table_name from 
                all_all_tables t where t.owner in ('AA','BB','CC');
begin
   for v_tab in c_tab LOOP  --for循环自带隐式关闭游标
        old_owner :=v_tab.owner;
        old_table :=v_tab.table_name;
        v_sql :='create table twe.'||old_table||' as select * from '||old_owner||'.'||old_table
                  ||' where rownum < 100';
        
        begin
              execute immediate v_sql;
         exception when others then --当出现重复表名时跳过
             null;
        end;
    end loop;
end;