Oracle如何删除用户下所有的表
这篇文章将为大家详细讲解有关Oracle如何删除用户下所有的表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
0、最直接了当的方法:
先以sys as sysdba 登陆Oracle
>sql shutdown
>sql startup
drop user username cascade
创建新用户
1、
select 'Drop table '||table_name||';'
from all_tables
where owner='要删除的用户名(注意要大写)';
2、
删除所有表
以用户test为例
for example:
declare
cursor cur1 is select table_name from dba_tables where owner='TEST';
begin
for cur2 in cur1 loop
execute immediate 'drop table test.'||cur2.table_name;
end loop;
end;
3、这个删除当前用户的所有对象(表、视图、触发器、存储过程、函数)
没试过
DECLARE
TYPEname_listISTABLEOFVARCHAR2(40);
TYPEtype_listISTABLEOFVARCHAR2(20);
Tab_namename_list:=name_list();
Tab_typetype_list:=type_list();
sql_strVARCHAR2(500);
BEGIN
sql_str:='selectuo.object_name,uo.object_typefromuser_objectsuowhereuo.object_typenotin(''INDEX'',''LOB'')orderbyuo.object_typedesc';
EXECUTEIMMEDIATEsql_strBULKCOLLECTINTOtab_name,tab_type;
FORiINTab_name.FIRST..Tab_name.LASTLOOP
sql_str:='DROP'||Tab_type(i)||''||Tab_name(i);
EXECUTEIMMEDIATEsql_str;
ENDLOOP;
END;
关于“Oracle如何删除用户下所有的表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。