Saltar al contenido

¿Obtener una lista de todas las tablas en Oracle?

este problema se puede resolver de diferentes maneras, sin embargo te mostramos la respuesta más completa para nosotros.

Solución:

SELECT owner, table_name
  FROM dba_tables

Esto es asumiendo que usted tiene acceso a la DBA_TABLES vista del diccionario de datos. Si no tiene esos privilegios pero los necesita, puede solicitar que el DBA le otorgue explícitamente privilegios en esa tabla, o que el DBA le otorgue los SELECT ANY DICTIONARY privilegio o el SELECT_CATALOG_ROLE rol (cualquiera de los dos le permitiría consultar cualquier tabla de diccionario de datos). Por supuesto, es posible que desee excluir ciertos esquemas como SYS y SYSTEM que tienen una gran cantidad de tablas de Oracle que probablemente no le interesen.

Alternativamente, si no tiene acceso a DBA_TABLESpuedes ver todas las mesas a las que tu cuenta tiene acceso a través de la ALL_TABLES vista:

SELECT owner, table_name
  FROM all_tables

Aunque, ese puede ser un subconjunto de las tablas disponibles en la base de datos (ALL_TABLES le muestra la información de todas las tablas a las que se le ha otorgado acceso a su usuario).

Si solo le preocupan las tablas que posee, no aquellas a las que tiene acceso, puede usar USER_TABLES:

SELECT table_name
  FROM user_tables

Ya que USER_TABLES solo tiene información sobre las tablas que posee, no tiene un OWNER columna: el propietario, por definición, eres tú.

Oracle también tiene una serie de vistas de diccionario de datos heredados: TAB, DICT, TABSy CAT por ejemplo, eso podría usarse. En general, no recomendaría usar estas vistas heredadas a menos que sea absolutamente necesario retrotraer sus scripts a Oracle 6. Oracle no ha cambiado estas vistas en mucho tiempo, por lo que a menudo tienen problemas con tipos de objetos más nuevos. por ejemplo, el TAB y CAT ambas vistas muestran información sobre las tablas que están en la papelera de reciclaje del usuario mientras que la [DBA|ALL|USER]_TABLES todas las vistas las filtran. CAT también muestra información sobre los registros de vista materializados con un TABLE_TYPE de “TABLE”, que es poco probable que sea lo que realmente desea. DICT combina tablas y sinónimos y no le dice a quién pertenece el objeto.

consultando user_tables y dba_tables no funcionó
Este lo hizo:

select table_name from all_tables  

Yendo un paso más allá, hay otra vista llamada cols (all_tab_columns) que se puede usar para determinar qué tablas contienen un nombre de columna dado.

Por ejemplo:

SELECT table_name, column_name
FROM cols
WHERE table_name LIKE 'EST%'
AND column_name LIKE '%CALLREF%';

para encontrar todas las tablas que tienen un nombre que comienza con EST y columnas que contienen CALLREF en cualquier parte de sus nombres.

Esto puede ayudar a determinar en qué columnas desea unirse, por ejemplo, según las convenciones de nomenclatura de su tabla y columna.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *