¿Cómo enumero todas las tablas en un esquema en Oracle SQL?
                159
            
  
              
        Para ver todas las tablas en otro esquema, debe tener uno o más de los siguientes privilegios del sistema:
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
o el gran martillo, el papel de DBA.
Con cualquiera de esos, puede seleccionar:
SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'
Sin esos privilegios del sistema, solo puede ver las tablas a las que se le ha otorgado algún nivel de acceso, ya sea directamente o mediante un rol.
SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'
Por último, siempre puede consultar el diccionario de datos para sus propias tablas, ya que sus derechos sobre sus tablas no se pueden revocar (a partir de 10g):
SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
%_OBJECTSlugar de%_TABLES.DISTINCTen la consulta.owner, object_namees único enALL_OBJECTSowner, object_nameno es único de ninguna manera en dba_objects; Los cuerpos de paquete y los paquetes aparecen en esa vista, y las tablas e índices están en diferentes espacios de nombres.fuente
Puedes consultar
USER_TABLESfuente
Si inició sesión como Usuario normal sin permiso de DBA, puede usar el siguiente comando para ver todas las tablas y vistas de su propio esquema.
fuente
Intenta esto, ¿reemplazar? con tu nombre de esquema
fuente
Si accede a Oracle con JDBC (Java), puede usar la clase DatabaseMetadata . Si está accediendo a Oracle con ADO.NET, puede usar un enfoque similar.
Si está accediendo a Oracle con ODBC, puede usar la función SQLTables .
De lo contrario, si solo necesita la información en SQLPlus o un cliente de Oracle similar, una de las consultas ya mencionadas servirá. Por ejemplo:
fuente
mostrará todas las tablas en su sinónimo de gato de esquema de user_catalog
fuente
La consulta anterior le dará los nombres de todas las tablas presentes en ese usuario;
fuente
(mostrando todas las tablas)
fuente
SELECCIONA table_name, owner FROM all_tables donde owner = 'schema_name' ordena por table_name
fuente
Puede ejecutar directamente la segunda consulta si conoce el nombre del propietario.
--Primero puede seleccionar qué existen todos los PROPIETARIOS que existen:
- Entonces puede ver las tablas debajo de ese propietario:
fuente
Mira mi sencilla utilidad para mostrar información sobre el esquema db. Se basa en: Ingeniería inversa de un modelo de datos utilizando el Diccionario de datos de Oracle
fuente
Si necesita obtener el tamaño de la tabla también, esto será útil:
select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1fuente
Nombre de la tabla y el contador de filas para todas las tablas bajo
OWNEResquema:SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'fuente