Oracle 刪除使用者所有物件的指令碼

2021-05-01 09:49:51 字數 1709 閱讀 9261

發表於: 2023年7月24日 21:01

原始出處和作者資訊及

對於測試資料庫,經常會涉及到使用者資料重新匯入的情況,在不賦予使用者建立和刪除使用者的前提下,普通使用者也可以通過指令碼來刪除自己模式下的表、檢視等物件。

下面是乙個刪除使用者所有表的指令碼:

declare

cursor mycursor is select table_name from user_tables;

vtable_name varchar2(60);

sql_stmt varchar2(100);

begin

open mycursor;

loop

fetch mycursor into vtable_name;

exit when mycursor%notfound;

sql_stmt := 'drop table "'||vtable_name||'" cascade constraints';

execute immediate sql_stmt;

end loop;

close mycursor;

end;

/

刪除儲存過程等物件:

declare

cursor mycursor is select name,type from user_source;

vsource_name varchar2(60);

vsource_type varchar2(60);

sql_stmt varchar2(100);

begin

open mycursor;

loop

fetch mycursor into vsource_name,vsource_type;

exit when mycursor%notfound;

sql_stmt := 'drop '||vsource_type||' "'||vsource_name||'"';

execute immediate sql_stmt;

--dbms_output.put_line(sql_stmt);

end loop;

close mycursor;

end;/

quit;

通過游標迴圈操作,可以實現其它物件的刪除。

declare

cursor mycursor is select synonym_name from user_synonyms;

vtable_name varchar2(60);

sql_stmt varchar2(100);

begin

open mycursor;

loop

fetch mycursor into vtable_name;

exit when mycursor%notfound;

sql_stmt := 'drop synonym "'||vtable_name||'"';

execute immediate sql_stmt;

end loop;

close mycursor;

end;

/

ORACLE刪除某使用者下所有物件

sql指令碼 唯一注意的是下面的f dropobj.sql 為操作的.sql 你的電腦沒有f盤,請換為d或者e其他存在的碟符 用於刪除當前使用者的所有物件 use for drop all objects in current user set heading off set feedback of...

ORACLE刪除某使用者下所有物件

sql指令碼 唯一注意的是下面的f dropobj.sql 為操作的.sql 你的電腦沒有f盤,請換為d或者e其他存在的碟符 用於刪除當前使用者的所有物件 use for drop all objects in current user set heading off set feedback of...

oracle 刪除某個使用者下的所有物件

先存放好dropobj.sql 檔案 然後登入需要刪除的使用者 刪除前最好備份一下 備份是在cmd中進行的 c users panfu exp file d expall.dmp log expall.logfull y export release 10.2.0.1.0 production on...