Oracle清空或者刪除當前用戶下全部的表

場景 :手動或者動態腳本清除 Oracle清空或者刪除當前用戶全部的表sql

方法一:oop

   使用pl/sql客戶端,使用該用戶登陸,選中全部表 右鍵drop便可fetch

方法二:it

 前提:該用戶 有此權限table

  1. select 'drop table '||table_name||';' from user_tables;  

 而後 拷貝其 SQL ,進行刪除class

方法三:登錄

  使用存儲過程刪除該用戶下全部的表變量

set ECHO ON  select

set define off       權限

SPOOL logs/create_procedure.log  

--刪除全部表的存儲過程;    

create or replace procedure P_DROP_ALL_TABLE  

as   

 --引用user_tables表中的tableName的類型;  

tableName user_tables.table_name%type;    

 type ty is record(table_name varchar2(30));  

--定義ref類型遊標;-強類型  

  type ref_type is ref cursor return ty;  

  ref_t ref_type;  

 --定義變量存儲數量;  

 mycount number(10);  

  begin  

--打開遊標;  

open ref_t for select table_name from user_tables;  

 loop  

  --從遊標中獲取一條記錄,放入變量中;  

             fetch ref_t into tableName;  

                    SELECT COUNT(*) INTO mycount FROM user_tables WHERE TABLE_NAME = tableName;  

                    if mycount>0 then  

                       execute immediate 'DROP TABLE '||tableName || ' CASCADE CONSTRAINT ';  

                    end if;  

             exit when ref_t%notfound;  --退出;  

         end loop;  

     close ref_t;      

  end;  

/  

清除的話,將 drop 替換爲 truncate 或者 delete ,過程 同上

相關文章
相關標籤/搜索