sql - una - ver todas las bases de datos en oracle




Obtener lista de todas las tablas en Oracle? (13)

¿Cómo puedo consultar una base de datos Oracle para mostrar los nombres de todas las tablas en ella?


Para una mejor visualización con sqlplus

Si está utilizando sqlplus es posible que desee configurar primero algunos parámetros para una mejor visualización si sus columnas se dañan (estas variables no deberían persistir después de salir de su sesión de sqlplus ):

set colsep '|'
set linesize 167
set pagesize 30
set pagesize 1000

Mostrar todas las tablas

Luego puedes usar algo como esto para ver todos los nombres de tablas:

SELECT table_name, owner, tablespace_name FROM all_tables;

Muestre las tablas que posee

Como lo menciona @Justin Cave, puede usar esto para mostrar solo las tablas que posee:

SELECT table_name FROM user_tables;

No te olvides de las vistas

Tenga en cuenta que algunas "tablas" pueden ser en realidad "vistas", por lo que también puede intentar ejecutar algo como:

SELECT view_name FROM all_views;

Los resultados

Esto debería producir algo que se vea bastante aceptable como:


A continuación se muestra un fragmento de consultas SQL comentadas que describen cómo las opciones puede utilizar:

-- need to have select catalog role
SELECT * FROM dba_tables;

-- to see tables of your schema
SELECT * FROM user_tables;

-- tables inside your schema and tables of other schema which you possess select grants on
SELECT * FROM all_tables;

Con cualquiera de estos, puede seleccionar:

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM DBA_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

SELECT DISTINCT OWNER, OBJECT_NAME 
    FROM ALL_OBJECTS 
    WHERE OBJECT_TYPE = 'TABLE' AND OWNER='SOME_SCHEMA_NAME';

Consulta simple para seleccionar las tablas para el usuario actual:

  SELECT table_name FROM user_tables;

Existen 3 datadictinary para esto.

DBA_TABLES describe todas las tablas relacionales en la base de datos.

SELECT owner, table_name
  FROM dba_tables

Descripción de tablas relacionales accesibles al usuario.

SELECT owner, table_name
  FROM all_tables

USER_TABLES describe las tablas relacionales que son propiedad del usuario actual. Esta vista no muestra la columna PROPIETARIO .

SELECT table_name
  FROM user_tables

Incluyendo vistas:

SELECT owner, table_name as table_view
  FROM dba_tables
UNION ALL
SELECT owner, view_name as table_view
  FROM DBA_VIEWS

La siguiente consulta solo enumera los datos requeridos, mientras que las otras respuestas me dieron los datos adicionales que solo me confundieron.

select table_name from user_tables;

Las consultas user_tables y dba_tables no funcionaron.
Este hizo:

select table_name from all_tables  

Podemos obtener todas las tablas incluyendo los detalles de la columna de la siguiente consulta:

SELECT * FROM user_tab_columns;

Pruebe las siguientes vistas del diccionario de datos.

tabs
dba_tables
all_tables
user_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 buscar todas las tablas que tengan un nombre que comience con EST y columnas que contengan CALLREF en cualquier parte de sus nombres.

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


    select object_name from user_objects where object_type='TABLE';

----------------O------------------

    select * from tab;

----------------O------------------

    select table_name from user_tables;

select * from dba_tables

proporciona todas las tablas de todos los usuarios solo si el usuario con el que inició sesión tiene los privilegios de sysdba .





oracle