Eliminar tabla Oracle con comprobacion EXISTS

Elena
29 de Septiembre del 2004
Buenas,
quería saber cual es la manera de comprobar si existe una tabla antes de borrarla. Si existe algo como esto: DROP TABLE IF EXISTS.

Saludos

tom_paris
29 de Septiembre del 2004
En Oracle que yo sepa no existe esa claúsula 'EXISTS' ; la única forma de saber si existe una tabla antes de borrarla es sencillamente borrarla; es decir :

drop table nombre_tabla ;
create table nombre_tabla ( ------ ..... ----- ) ;

en el caso de que la tabla no exista devolverá un error ; concretamente el ORA-00942: table or view does not exist.

Si lo que quieres es borrar la tabla en un script sql y lanzarlo 'a pelo' en tu bbdd oracle puedes hacerlo como te he descrito antes.

Saludos! :P

PARDA
29 de Septiembre del 2004
ESTIMADOS... quizas puedan utilizar una consulta de este tipo...

select table_name from user_tables where table_name = 'NOMBRE_TABLA';

en el caso de que te devuelva valor ejecutas...

drop NOMBRE_TABLA;

si no devuelve nada... NO EXISTE...

SALUDOS....


sys
29 de Septiembre del 2004
querido parda, no existirá en el esquema en el que estás lanzando esa consulta.
Se deberá de usar la tabla dba_tables y la columna owner para ver si la tabla existe y a que usuario pertenece.
un saludo.