ver una todas tablas tabla scripts saber quien modifico las ejemplos developer datos consultas consultar como comandos bases 11g sql oracle

una - ver tablas en oracle sql developer



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

¿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;


Estaba buscando obtener una lista de todos los nombres de columnas pertenecientes a una tabla de un esquema ordenado por el orden de la columna id.

Aquí está la consulta que estoy usando:

SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = ''schema_owner_username'' AND TABLE_NAME=''table_name'' ORDER BY COLUMN_ID ASC;


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


Intente seleccionar user_tables que enumera las tablas que pertenecen al usuario actual.


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


Puede usar Oracle Data Dictionary para obtener información sobre los objetos de Oracle .

Puede obtener la lista de tablas de diferentes maneras:

select * from dba_tables

o por ejemplo:

select * from dba_objects where object_type = ''TABLE''

Luego puedes obtener columnas de la tabla usando el nombre de la tabla:

select * from dba_tab_columns

Luego puede obtener una lista de dependencias (desencadenantes, vistas, etc.):

select * from dba_dependencies where referenced_type=''TABLE'' and referenced_name=:t_name

Entonces puedes obtener la fuente de texto de estos objetos:

select * from dba_source

Y puede usar USER o ALL vistas en lugar de DBA si lo desea.


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 owner, table_name FROM dba_tables

Esto se supone que tiene acceso a la vista del diccionario de datos DBA_TABLES . 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 el privilegio SELECT ANY DICTIONARY o el rol SELECT_CATALOG_ROLE (cualquiera de los cuales le permitirá consultar) cualquier tabla de diccionario de datos). Por supuesto, es posible que desee excluir ciertos esquemas como SYS y SYSTEM que tienen un gran número de tablas de Oracle que probablemente no le interesan.

Alternativamente, si no tiene acceso a DBA_TABLES , puede ver todas las tablas a las que su cuenta tiene acceso a través de la vista ALL_TABLES :

SELECT owner, table_name FROM all_tables

Aunque, ese puede ser un subconjunto de las tablas disponibles en la base de datos ( ALL_TABLES 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

Dado que USER_TABLES solo tiene información sobre las tablas que posee, no tiene una columna OWNER : el propietario, por definición, es usted.

Oracle también tiene una serie de vistas de diccionarios de datos heredados ( TAB , DICT , TABS y CAT por ejemplo) que se pueden usar. En general, no sugeriría el uso de estas vistas heredadas a menos que tenga que respaldar sus scripts con Oracle 6. Oracle no ha cambiado estas vistas en mucho tiempo, por lo que a menudo tienen problemas con los tipos de objetos más nuevos. Por ejemplo, las vistas TAB y CAT muestran información sobre las tablas que se encuentran en la papelera de reciclaje del usuario, mientras que las vistas [DBA|ALL|USER]_TABLES filtran todas. CAT también muestra información sobre los registros de vistas materializadas 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 quién es el propietario del objeto.


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 .