Oracle
 sql >> Database >  >> RDS >> Oracle

Come faccio a elencare tutte le tabelle in uno schema in Oracle SQL?

Per visualizzare tutte le tabelle in un altro schema, devi disporre di uno o più dei seguenti privilegi di sistema:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

o il martello grosso, il ruolo di DBA.

Con uno di questi, puoi selezionare:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Senza quei privilegi di sistema, puoi vedere solo le tabelle a cui ti è stato concesso un certo livello di accesso, direttamente o tramite un ruolo.

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Infine, puoi sempre interrogare il dizionario dei dati per le tue tabelle, poiché i tuoi diritti sulle tue tabelle non possono essere revocati (a partire da 10 g):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'