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. |