oracle循环删除表的存储过程

1.打开oracle客户端工具,链接上数据库
2.执行

create or replace procedure delete_table authid current_user as 

TableName VARCHAR2(16);
IsExist int;
SqlSentence VARCHAR2(2048);

begin
-- 删除表的存储过程,手动执行

  DBMS_OUTPUT.ENABLE (buffer_size=>null);
  
  for i in 1 .. 2 loop
     
    select to_char(sysdate-i,'yyyyMMdd') into TableName from dual;
    
    TableName := 'T_MT_'||TableName;
    dbms_output.put_line('TableName = '||TableName);
 
    select count(1) into IsExist from user_tables where table_name=''||TableName||'';
    if ( IsExist = 1 ) then
     
      SqlSentence := 'truncate table '||TableName;
      execute immediate SqlSentence;
      commit;
      
      SqlSentence := 'drop table '||TableName;
      execute immediate SqlSentence;
      commit;
      
      dbms_output.put_line('delete = '||TableName);
 
    end if;
    
  end loop;

end delete_table;

3.找到该存储过程,运行

发布了24 篇原创文章 · 获赞 50 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/u013015301/article/details/103713581