In Oracle Database, ci sono un certo numero di viste che possiamo interrogare per scoprire se esiste una tabella.
Esempio
Ad esempio, USER_TABLES descrive le tabelle relazionali di proprietà dell'utente corrente.
SELECT TABLE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES'; Risultato:
COUNTRIES
In questo esempio, ho verificato se esiste una tabella relazionale chiamata COUNTRIES che è di proprietà dell'utente corrente.
Potremmo modificare questa query per restituire solo il conteggio:
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES'; Risultato:
1
In tal caso, il nome della tabella esiste e quindi il conteggio è 1 .
Ecco cosa succede quando la tabella non esiste:
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'USERS'; Risultato:
0
La tabella seguente elenca altre viste che contengono informazioni sulle tabelle in Oracle Database.
| Visualizza | Descrizione |
|---|---|
USER_TABLES | Descrive le tabelle relazionali di proprietà dell'utente corrente (questa vista è utilizzata nell'esempio precedente). |
ALL_TABLES | Descrive le tabelle relazionali accessibili all'utente corrente. |
DBA_TABLES | Descrive tutte le tabelle relazionali nel database. |
USER_ALL_TABLES | Descrive le tabelle degli oggetti e le tabelle relazionali di proprietà dell'utente corrente. |
DBA_ALL_TABLES | Descrive tutte le tabelle degli oggetti e le tabelle relazionali nel database. |
ALL_ALL_TABLES | Descrive le tabelle degli oggetti e le tabelle relazionali accessibili all'utente corrente. |