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

Ottieni l'elenco di tutte le tabelle in Oracle?

SELECT owner, table_name
  FROM dba_tables

Questo presuppone che tu abbia accesso a DBA_TABLES vista dizionario dati. Se non disponi di quei privilegi ma ne hai bisogno, puoi richiedere che il DBA ti conceda esplicitamente i privilegi su quella tabella, oppure che il DBA ti conceda il SELECT ANY DICTIONARY privilegio o il SELECT_CATALOG_ROLE ruolo (uno dei quali ti consentirebbe di interrogare qualsiasi tabella del dizionario di dati). Naturalmente, potresti voler escludere alcuni schemi come SYS e SYSTEM che hanno un gran numero di tabelle Oracle di cui probabilmente non ti interessa.

In alternativa, se non hai accesso a DBA_TABLES , puoi vedere tutte le tabelle a cui ha accesso il tuo account tramite ALL_TABLES visualizza:

SELECT owner, table_name
  FROM all_tables

Anche se potrebbe essere un sottoinsieme delle tabelle disponibili nel database (ALL_TABLES mostra le informazioni per tutte le tabelle a cui il tuo utente ha avuto accesso).

Se sei interessato solo alle tabelle che possiedi, non a quelle a cui hai accesso, puoi usare USER_TABLES :

SELECT table_name
  FROM user_tables

Da USER_TABLES contiene solo informazioni sulle tabelle che possiedi, non ha un OWNER colonna:il proprietario, per definizione, sei tu.

Oracle ha anche una serie di viste del dizionario dei dati legacy:TABS , DICT , TABS e CAT per esempio-- che potrebbe essere usato. In generale, non suggerirei di utilizzare queste viste legacy a meno che non sia assolutamente necessario eseguire il backport degli script su Oracle 6. Oracle non ha modificato queste viste da molto tempo, quindi spesso hanno problemi con i nuovi tipi di oggetti. Ad esempio, il TABS e CAT entrambe le viste mostrano informazioni sulle tabelle che si trovano nel cestino dell'utente mentre [DBA|ALL|USER]_TABLES le visualizzazioni filtrano tutte. CAT mostra anche informazioni sui log delle viste materializzate con un TABLE_TYPE di "TABLE" che è improbabile che sia quello che vuoi veramente. DICT combina tabelle e sinonimi e non ti dice chi possiede l'oggetto.