Home Hardware Networking Programmazione Software Domanda Sistemi Computer
Conoscenza del computer >> Computer >> Software >> .

Come ottenere tutti i nomi delle colonne in un database Oracle

I database Oracle organizzano le tabelle in account proprietario chiamati schemi. Gli utenti del database con privilegi diversi possono interrogare i metadati del database - chiamati "dizionario dei dati" - per elencare informazioni tra cui nomi di colonna, permessi di oggetti o statistiche di oggetti. Per ottenere nomi di colonne da tabelle o viste su un server di database Oracle, eseguire una breve query utilizzando l'oggetto dizionario di dati più appropriato. La vista USER_TAB_COLS mostra gli oggetti di proprietà dell'utente che ha effettuato l'accesso, mentre ALL_TAB_COLS mostra tutti gli oggetti disponibili per l'utente in base alle sue autorizzazioni e DBA_TAB_COLS mostra tutto nel database indipendentemente da quale account utente possiede l'oggetto.

Passaggio 1: eseguire una query SQL standard per restituire i risultati dalla vista di sistema più appropriata. Viene visualizzata una query di base nel modulo: SELEZIONA * FROM USER_TAB_COLS; Sostituire ALL_TAB_COLS o DBA_TAB_COLS come appropriato. Il simbolo "*" restituisce tutte le colonne nella query.

Passaggio 2

Limita i dati restituiti nella query sostituendo "select *" con un elenco più mirato di colonne dalla vista del dizionario. Per restituire solo lo schema, il nome della tabella e il nome della colonna per gli oggetti a cui può accedere l'account di accesso, utilizzare: SELEZIONA proprietario, nome_tabella, nome_colonna DA ALL_TAB_COLS;

Limita gli oggetti restituiti limitando i risultati con una clausola "dove". Ad esempio, per restituire solo i nomi di colonna per le tabelle possedute dall'utente che ha effettuato l'accesso e che iniziano con la lettera "A", utilizzare: SELEZIONA * DA USER_TAB_COLS DOVE table_name LIKE 'A%';

Suggerimenti

Le grandi organizzazioni che eseguono un server Oracle di livello aziendale a volte offrono interfacce basate su Web ai dizionari di dati che interrogano tutte le colonne della tabella come utenti anonimi o di sistema senza dover scrivere la propria query. Verificare con un amministratore del database se si dispone dell'accesso a tale strumento.

Oracle offre anche visualizzazioni ALL_TAB_COLUMNS, USER_TAB_COLUMNS e DBA_TAB_COLUMNS. Questi oggetti differiscono da quelli che terminano in "COLS" filtrando determinate colonne nascoste. Nella maggior parte dei casi, otterrai le informazioni di cui hai bisogno indipendentemente dal set di visualizzazioni che usi.

Avvertenze

Restituire tutti i nomi di colonna su un database molto grande con molti oggetti può fornire troppe informazioni per essere utili. Prendi in considerazione la possibilità di restringere il campo di applicazione con una serie di filtri di ricerca nella clausola SQL "where".

Per eseguire una query su qualsiasi oggetto del dizionario di dati con prefisso DBA, l'account di accesso deve disporre dei diritti di "selezione" per tali viste o deve essere assegnato SELECT_CATALOG_ROLE di Oracle. Nella maggior parte dei casi, le tabelle DBA devono specificare il prefisso dello schema SYS, ad esempio "SELECT * FROM SYS.DBA_TAB_COLS;" o il suo equivalente.

 

Computer © www.354353.com