Questi tipi di oggetti vengono utilizzati per archiviare i dati correlati in un punto di entrata specifico per un uso successivo. Per impostazione predefinita, le tabelle archiviano informazioni di base le applicazioni target e gli utenti gestiscono. D'altra parte, le viste mantengono una particolare istantanea di una query da tavolo, ecc.
Quando si lavora con database relazionali, incontrerai istanze in cui è necessario recuperare i metadati sottostanti archiviati in un database. In questo tutorial, tratteremo i metodi di base per determinare le tabelle di un determinato database Oracle.
Dizionari dei dati Oracle
A differenza di altri database SQL come MySQL o PostgreSQL, Oracle non ha un comando autonomo che consente di recuperare le tabelle di un determinato database.
Per mostrare le tabelle di un determinato database, dobbiamo utilizzare le visualizzazioni del dizionario dei dati Oracle.
In Oracle, un dizionario di dati si riferisce a una raccolta di visualizzazioni di sola lettura che memorizzano informazioni su un determinato database, inclusi schemi, autorizzazioni utente, eventi, ecc.
Sebbene i dizionari dei dati siano di sola lettura, possiamo interrogare le informazioni archiviate in essi, comprese le tabelle.
Esploriamo e impariamo come possiamo lavorare con i dizionari di dati.
Oracle Show Tabelle di proprietà dell'utente attuale
L'uso più comune del comando Show Tables è di elencare le tabelle di proprietà dell'utente corrente.
Possiamo usare una query come mostrato:
Seleziona Table_name da user_tables;La query sopra dovrebbe restituire tutti i nomi della tabella di proprietà dell'utente corrente. Un output di esempio è come mostrato:
Oracle Show Tabelle accessibili dall'utente corrente
In alcuni casi, potresti voler mostrare tutte le tabelle accessibili dall'utente attuale nonostante le autorizzazioni allocate.
In tal caso, possiamo interrogare il dizionario dati All_Tables come mostrato nell'istruzione seguente:
Seleziona Table_name, proprietario da All_tables dove proprietario = 'hr' Ordine di table_name, proprietario;Questa richiesta elenca tutte le tabelle accessibili dall'utente corrente, come mostrato nell'output di seguito:
Oracle Elenco tutte le tabelle
In casi molto minimi, potrebbe essere necessario elencare ogni volta nell'intero sistema. Per questo, devi interrogare il dizionario dati DBA_Tables.
È bene tenere presente che richiedere una vasta raccolta di dati con un parametro di ordinamento può avere prestazioni colossali. Usalo con cautela.
Seleziona Table_name, proprietario da DBA_Tables;Questo dovrebbe scaricare tutte le tabelle nel sistema, come mostrato nell'uscita del campione di seguito:
In alcuni casi, è possibile ottenere un errore come:
[42000] [942] ORA-00942: tabella o vista non esisteIn tal caso, potrebbe essere necessario contattare l'amministratore del database per concedere le autorizzazioni sul dizionario DBA_Tables, selezionare qualsiasi autorizzazione del dizionario o select_catalog_role.
Conclusione
In questo post, hai imparato vari metodi e tecniche per elencare le tabelle nel server Oracle. Ad esempio, hai imparato come elencare le tabelle degli utenti, le tabelle DBA, ecc.