Oracle
 sql >> Database >  >> RDS >> Oracle

Sopprimi gli errori ORA-00942 negli script di creazione ddl

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.