ORACLE下刪除當前使用者下所有物件

2021-08-31 23:09:46 字數 2135 閱讀 8385

原文出自:

好**頂,複製下做個筆記

sql**

--刪除某個使用者下的物件

set heading off;

set feedback off;

spool c:\dropobj.sql;

prompt --drop constraint

select 'alter table '||table_name||' drop constraint '||constraint_name||' ;' from user_constraints where constraint_type='r';

prompt --drop tables

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

prompt --drop view

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

prompt --drop sequence

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

prompt --drop function

select 'drop function ' ||object_name||';' from user_objects where object_type='function';

prompt --drop procedure

select 'drop procedure '||object_name||';' from user_objects where object_type='procedure';

prompt --drop package

prompt --drop package body

select 'drop package '|| object_name||';' from user_objects where object_type='package';

prompt --drop database link

select 'drop database link '|| object_name||';' from user_objects where object_type='database link';

spool off;

set heading on;

set feedback on;

@@c:\dropobj.sql;

host del c:\dropobj.sql;

注釋:

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**

c (check constraint on a table)

p (primary key)

u (unique key)

r (referential integrity)

v (with check option, on a view)

o (with read only, on a view)

8.當執行'drop package ………… '這句時,package body會被同時刪除。

ORACLE下刪除當前使用者下所有物件 等等

通過第一條sql查到你本級資料表空間的目錄,然後通過第二條sql建立乙個名稱為 tbs lob 的專用表空間,注意你自己修改路徑。確保你的使用者擁有跨表空間的許可權。在控制台中執行第3行的命令 檢視表空間路徑 select tablespace name,file id,bytes,file nam...

ORACLE 刪除當前使用者下所有的表

加了cascade就可以把使用者連帶的資料全部刪掉 drop user hm dev cascade 刪除後再建立該使用者,重新授權即可 sql create user hm dev identified by 123456 sql grant create session to hm dev sq...

Oracle清空或者刪除當前使用者下所有的表

場景 手動或者動態指令碼清除 oracle清空或者刪除當前使用者所有的表 方法一 使用pl sql客戶端,使用該使用者登入,選中所有表 右鍵drop即可 方法二 前提 該使用者 有此許可權 select drop table table name from user tables 然後 拷貝其 sq...