游标删除表

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

 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;

猜你喜欢

转载自www.cnblogs.com/Isolate/p/11826364.html