简单的方法来擦除一组Oracle模式

如何擦拭一组Oracle模式?

擦拭我的意思是删除所有数据,表格,视图,程序,同义词等

启动sqlplus作为SYSTEM,然后键入:

drop user MYSCHEMA cascade; 

重复所有您想要删除的模式。

这是一个开始,而不是一个完全烘焙的脚本 – 我敢肯定,如果用户有configuration了AQ的任何队列,它将会失败。

 declare l_sql varchar2(2000); begin for i in (select object_type, object_name from dba_objects where owner = :user_to_be_wiped and object_type in ('TYPE', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'TABLE', 'VIEW', 'SEQUENCE', 'DATABASE LINK') loop l_sql := 'drop ' || :user_to_be_wiped || ' ' || i.object_type || '.' i.object_name; if i.object_type = 'TABLE' then l_sql := l_sql || ' cascade constraints'; end if; execute immediate l_sql; end loop; end; / 

我发现要删除对象,必须使用以下命令禁用外键约束。

 select status, 'alter table '||table_name||' disable constraint "' ||constraint_name||'";' from user_constraints where r_constraint_name is not null order by owner,table_name ; 

这不起作用,我放下外键约束与以下。

 select status, 'alter table '||table_name||' drop constraint "' ||constraint_name||'";' from user_constraints where r_constraint_name is not null order by owner,table_name ;