美文网首页
批量删除表(Oracle)

批量删除表(Oracle)

作者: I_Gisvity | 来源:发表于2019-06-05 08:38 被阅读0次

SELECT 'drop table '||TABLE_NAME ||';' FROM USER_TABLES WHERE TABLE_NAME LIKE 'ACT_%';

将用户空间的所有表名及所有字段变为大写

begin
  for t in (select table_name tn from user_tables where table_name <> upper(table_name)) loop
      begin
         for c in (select column_name cn from user_tab_columns where table_name=t.tn) loop
             begin
                execute immediate 'alter table "'||t.tn||'" rename column "'||c.cn||'" to '||c.cn;
             exception
                when others then
                   dbms_output.put_line(t.tn||'.'||c.cn||'已经存在');
             end;
         end loop;
     
         execute immediate 'alter table "'||t.tn||'" rename to '||t.tn;
         exception
            when others then
               dbms_output.put_line(t.tn||'已存在');
      end;
  end loop; 
end;

相关文章

网友评论

      本文标题:批量删除表(Oracle)

      本文链接:https://www.haomeiwen.com/subject/fjtjxctx.html