oracle批量建立某用户下的所有表结构

如果无法使用pl/sql developer中,工具->导出用户对象功能 

 

declare 
   cursor cemp is select table_name from all_tables where owner = 'USERNAME';
   tbn all_tables.table_name%type;
   col_num int ;
begin
  open cemp;
  loop
       fetch cemp into tbn;
       exit when cemp%notfound;
   select count(1) into col_num from all_tab_columns T1 where owner = 'USERNAME' and Table_Name= tbn ;
  insert into temp_USERNAME_tables
       select case 
         when rn=1 and 1 = col_num then
          'CREATE TABLE ' ||tbn || ' ( ' || COLUMN_NAME || '  '|| DATA_TYPE ||  ' );'
         when rn=1 and 1 <> col_num then
          'CREATE TABLE ' ||tbn || ' ( ' || COLUMN_NAME || '  '|| DATA_TYPE || ','
         when rn=col_num and 1 <> col_num  then
          COLUMN_NAME || '  ' || DATA_TYPE || ' );'
         else
          COLUMN_NAME || '  ' || DATA_TYPE || ','
        end create_table
       from (select rownum rn,
               T1.COLUMN_NAME,
               T1.DATA_TYPE || '(' || T1.DATA_LENGTH || ') ' as DATA_TYPE
          from all_tab_columns T1
         where owner = 'USERNAME'
           and Table_Name = tbn ) r1;

  end loop;
  close cemp;
end;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值