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;
Base de datos Oracle para mostrar los nombres de todas las tablas utilizando la siguiente consulta
SELECT owner, table_name FROM dba_tables; SELECT owner, table_name FROM all_tables; SELECT table_name FROM user_tables;
visita más: http://www.plsqlinformation.com/2016/08/get-list-of-all-tables-in-oracle.html
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
No encontré respuesta que apuntara a usar
DBA_ALL_TABLES (ALL_ALL_TABLES/USER_ALL_TABLES)
Así que decidí agregar mi versión también. Esta vista realmente devuelve más que DBA_TABLES ya que también devuelve tablas de objetos ( http://docs.oracle.com/cd/E11882_01/server.112/e40402/statviews_1003.htm ).
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
.