SET SERVEROUTPUT ON DECLARE l_count NUMBER; l_cascade VARCHAR2(40); BEGIN FOR i IN 1 .. 3 LOOP EXIT dependency_failure_loop WHEN l_count = 0; l_count := 0; FOR cur_rec IN (SELECT object_name, object_type FROM user_objects) LOOP BEGIN l_count := l_count + 1; l_cascade := NULL; IF cur_rec.object_type = 'TABLE' THEN l_cascade := ' CASCADE CONSTRAINTS'; END IF; EXECUTE IMMEDIATE 'DROP ' || cur_rec.object_type || ' "' || cur_rec.object_name || '"' || l_cascade; EXCEPTION WHEN OTHERS THEN NULL; END; END LOOP; -- Comment out the next line if you are pre-10g EXECUTE IMMEDIATE 'PURGE RECYCLEBIN'; DBMS_OUTPUT.put_line('Pass: ' || i || ' Drops: ' || l_count); END LOOP; END; /