Inicie o sqlplus como SYSTEM e digite:
drop user MYSCHEMA cascade;
Repita para todos os esquemas que você deseja eliminar.
Como você pode limpar um conjunto de esquemas do Oracle?
Por limpeza, quero dizer remover todos os dados, tabelas, visualizações, procedimentos, sinônimos, etc, etc.
Inicie o sqlplus como SYSTEM e digite:
drop user MYSCHEMA cascade;
Repita para todos os esquemas que você deseja eliminar.
Este é um começo, não um script totalmente preparado - Tenho certeza de que ele falhará se o usuário tiver, por exemplo, alguma fila configurada com 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;
/
Acho que para poder eliminar os objetos, você precisa desativar os construtores de chave estrangeira com o seguinte.
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
;
Isso não funciona, eu derrubo as restrições de chave estrangeira com o seguinte.
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
;