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

2021-06-18 20:48:23 字數 2176 閱讀 2440

--.sql指令碼

--唯一注意的是下面的f:\dropobj.sql 為操作的.sql;

--你的電腦沒有f盤,請換為d或者e其他存在的碟符

--用於刪除當前使用者的所有物件

--use for drop all objects in current user;

set heading off;

set feedback off;

spool f:\dropobj.sql;

prompt --刪除約束條件

select 'alter table '||table_name||' drop constraint '||constraint_name||' ;'

from user_constraints where constraint_type='r';

prompt --刪除表空間

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

prompt --刪除檢視

select 'drop view ' ||view_name||';' from user_views;

prompt --刪除數字序列

select 'drop sequence ' ||sequence_name||';' from user_sequences;

prompt --刪除函式

select 'drop function ' ||object_name||';' from user_objects

where object_type='function';

prompt --刪除儲存過程

select 'drop procedure '||object_name||';' from user_objects

where object_type='procedure';

prompt --刪除包

prompt --刪除包內容

select 'drop package '|| object_name||';' from user_objects

where object_type='package';

prompt --刪除資料庫鏈結

select 'drop database link '|| object_name||';' from user_objects

where object_type='database link';

spool off;

set heading on;

set feedback on;

@@f:\dropobj.sql;

host del f:\dropobj.sql;

--done for drop objects in current user;

--在sql*plus 將這整段作為.sql匯入或者直接複製黏貼,按f5執行,完成。

注釋: 1.上面這個語句,在pl/sql裡面是放在命令裡面執行的。 2.set heading off; 意思就是關閉表頭。如果不關閉,寫入dropobj.sql檔案中就會帶有結果集的表頭如: 'droptable'||table_name||';' ------------------------------------------ drop table teacher; 實際上我們需要的是「drop table teacher;」,「'droptable'||table_name||';' 」就是表頭。 3.set feedback off; 意思就是關閉回顯。如果不關閉,寫入dropobj.sql檔案中就會帶有返回結果集的大小等資訊,如:"137 rows selected" 4.spool c:\dropobj.sql; 把結果集寫入這個檔案。spool off; 結束寫入。 5.@@c:\dropobj.sql; 執行這個sql 6.host del c:\dropobj.sql; 刪除主機上這檔案。 7.constraint_type 就是鍵的型別: sql** 1. c (check constraint on a table) 2. p (primary key) 3. u (unique key) 4. r (referential integrity) 5. v (with check option, on a view) 6. o (with read only, on a view) 8.當執行'drop package ………… '這句時,package body會被同時刪除。

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

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

oracle刪除使用者下的所有表

刪除表有2個辦法 1,刪除使用者 這是最快的方法 2,生成刪除語句 方法一drop user cascade 方法二你需要建立這些刪除語句,通過oracle的資料字典找到該使用者下的所有表 檢視等物件,拼接成語句。如下select drop table table name chr 13 chr 1...

oracle批量刪除某使用者下的表

昨天幹了一天的體力活,到快下班時被要求刪除一批測試庫上錯誤的表,主要是這些表的字段和生產上欄位順序對不上,然後讓我寫個指令碼,讓dba執行一下,主要是刪表這種東西我們都沒許可權.然後,我就被難到了,我記得以前都是刪乙個表啊,還沒有批量刪過表啊,而且以前刪表都是先刪除約束再刪表的,難道這次讓我去把每個...