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. |