游标删除表

我的梦境 提交于 2019-12-04 01:03:09

 本地测试数据库临时表太多无用,用循环删除表

 

 1 declare 
 2  
 3   --i integer;
 4   v_tablename varchar2(20);
 5   v_sql varchar2(200); --定义表名
 6   CURSOR emp_cursor IS select TABLE_NAME  from user_tab_comments ;--游标
 7 begin
 8    --select TABLE_NAME  from user_tab_comments                   --查询当前用户下表名
 9   open emp_cursor ;                                              --打开游标
10   loop                                                           --打开循环
11   FETCH  emp_cursor into v_tablename ;                           --取值
12     EXIT WHEN emp_cursor%NOTFOUND;                               --判断游标循环
13   --dbms_output.put_line(v_tablename);                           --dbsm输出打印表名
14   v_sql:='drop table '|| v_tablename;                            --拼接删除表语句  drop 删除表空间,无需commit
15   dbms_output.put_line(v_sql);
16   execute immediate v_sql;                                       --执行 sql语句
17   end loop;                                                      --标记循环结束
18   CLOSE emp_cursor;                                              --关闭游标
19 end;

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!