sql >> Base de Datos >  >> RDS >> Oracle

Suprimir los errores ORA-00942 en los scripts de creación de ddl

Idealmente, deberíamos mantener nuestro esquema correctamente, utilizando las mejores prácticas de gestión de configuración y control de código fuente. En este escenario, sabemos de antemano si el esquema contra el que ejecutamos nuestros scripts contiene esas tablas. No recibimos errores porque no intentamos descartar tablas que no existen.

Sin embargo, no siempre es posible hacer esto. Un enfoque alternativo es tener dos guiones. El primer script solo tiene las declaraciones DROP TABLE, precedidas por un amigable

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

El segundo script tiene todas las instrucciones CREATE TABLE y comienza con

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

Otra opción es usar el diccionario de datos:

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

Ten cuidado con éste. Es la opción nuclear y eliminará todas las tablas de su esquema.