declare
s varchar2(100);
begin
dbms_output.put_line('----------------start to drop child tables---------------');
--查询某个父表的所有子表,因为必须先干掉子表,才能再干掉父表
for myrec in (select constraint_name from user_constraints where constraint_type = 'P' or constraint_type = 'U') loop
for myrec2 in (select table_name from user_constraints where r_constraint_name = myrec.constraint_name) loop
dbms_output.put_line(myrec2.table_name);
execute immediate 'drop table ' || myrec2.table_name;
end loop;
end loop;
dbms_output.put_line('------------------start to drop others tables----------------');
for myrec in (select table_name from user_tables) loop
s := 'drop table ' || myrec.table_name;
dbms_output.put_line(s);
execute immediate s;
end loop;
end;