Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como faço para listar todas as tabelas em um esquema no Oracle SQL?


Para ver todas as tabelas em outro esquema, você precisa ter um ou mais dos seguintes privilégios de sistema:
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

ou o grande martelo, o papel do DBA.

Com qualquer um deles, você pode selecionar:
SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Sem esses privilégios de sistema, você só pode ver as tabelas às quais foi concedido algum nível de acesso, seja diretamente ou por meio de uma função.
SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Por fim, você sempre pode consultar o dicionário de dados para suas próprias tabelas, pois seus direitos sobre suas tabelas não podem ser revogados (a partir de 10g):
SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'