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

Verifica se esiste una tabella in Oracle

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.