Oracle
 sql >> Base de données >  >> RDS >> Oracle

Supprimer les erreurs ORA-00942 dans les scripts de création ddl

Idéalement, nous devrions maintenir notre schéma correctement, en utilisant les meilleures pratiques de contrôle des sources et de gestion de la configuration. Dans ce scénario, nous savons à l'avance si le schéma sur lequel nous exécutons nos scripts contient ces tables. Nous n'obtenons pas d'erreurs car nous n'essayons pas de supprimer des tables qui n'existent pas.

Cependant, il n'est pas toujours possible de le faire. Une autre approche consiste à avoir deux scripts. Le premier script a juste les instructions DROP TABLE, précédées d'un amical

PROMPT  It is safe to ignore any ORA-00942 errors in the following statements

Le deuxième script contient toutes les instructions CREATE TABLE et commence par

PROMPT  All the statements in this script should succeed.  So investigate any errors

Une autre option consiste à utiliser le dictionnaire de données :

begin
    for r in ( select table_name from user_tables )
    loop
        execute immediate 'drop table '||r.table_name
                    ||' cascade constraints';
    end loop;
end;

Soyez prudent avec celui-ci. C'est l'option nucléaire et supprimera toutes les tables de votre schéma.