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

Comprobar si existe una tabla en Oracle

En Oracle Database, hay varias vistas que podemos consultar para averiguar si existe una tabla.

Ejemplo

Por ejemplo, USER_TABLES describe las tablas relacionales propiedad del usuario actual.

SELECT TABLE_NAME 
FROM USER_TABLES 
WHERE TABLE_NAME = 'COUNTRIES';

Resultado:

COUNTRIES

En este ejemplo, verifiqué si hay una tabla relacional llamada COUNTRIES que es propiedad del usuario actual.

Podríamos ajustar esta consulta para que solo devuelva el recuento:

SELECT COUNT(TABLE_NAME)
FROM USER_TABLES 
WHERE TABLE_NAME = 'COUNTRIES';

Resultado:

1

En ese caso, el nombre de la tabla existe y, por lo tanto, el recuento es 1 .

Esto es lo que sucede cuando la tabla no existe:

SELECT COUNT(TABLE_NAME)
FROM USER_TABLES 
WHERE TABLE_NAME = 'USERS';

Resultado:

0

La siguiente tabla enumera otras vistas que contienen información sobre tablas en Oracle Database.

Ver Descripción
USER_TABLES Describe las tablas relacionales propiedad del usuario actual (esta vista se usa en el ejemplo anterior).
ALL_TABLES Describe las tablas relacionales accesibles para el usuario actual.
DBA_TABLES Describe todas las tablas relacionales en la base de datos.
USER_ALL_TABLES Describe las tablas de objetos y las tablas relacionales propiedad del usuario actual.
DBA_ALL_TABLES Describe todas las tablas de objetos y tablas relacionales en la base de datos.
ALL_ALL_TABLES Describe las tablas de objetos y las tablas relacionales accesibles para el usuario actual.