Idealmente, dovremmo mantenere il nostro schema correttamente, utilizzando le migliori pratiche di controllo del codice sorgente e gestione della configurazione. In questo scenario sappiamo in anticipo se lo schema su cui eseguiamo i nostri script contiene quelle tabelle. Non riceviamo errori perché non tentiamo di eliminare tabelle che non esistono.
Tuttavia non è sempre possibile farlo. Un approccio alternativo consiste nell'avere due script. Il primo script ha solo le istruzioni DROP TABLE, precedute da un'amichevole
PROMPT It is safe to ignore any ORA-00942 errors in the following statements
Il secondo script contiene tutte le istruzioni CREATE TABLE e inizia con
PROMPT All the statements in this script should succeed. So investigate any errors
Un'altra opzione è usare il dizionario dei dati:
begin
for r in ( select table_name from user_tables )
loop
execute immediate 'drop table '||r.table_name
||' cascade constraints';
end loop;
end;
Stai attento con questo. È l'opzione nucleare e rilascerà tutte le tabelle nel tuo schema.