W Oracle Database istnieje wiele widoków, o które możemy zapytać, czy istnieje tabela.
Przykład
Na przykład USER_TABLES
opisuje tabele relacyjne należące do bieżącego użytkownika.
SELECT TABLE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES';
Wynik:
COUNTRIES
W tym przykładzie sprawdziłem, czy istnieje tabela relacyjna o nazwie COUNTRIES
należący do aktualnego użytkownika.
Moglibyśmy dostosować to zapytanie, aby zwracało tylko liczbę:
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES';
Wynik:
1
W takim przypadku nazwa tabeli istnieje, więc liczba wynosi 1
.
Oto, co się dzieje, gdy tabela nie istnieje:
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'USERS';
Wynik:
0
W poniższej tabeli wymieniono inne widoki zawierające informacje o tabelach w bazie danych Oracle.
Widok | Opis |
---|---|
USER_TABLES | Opisuje relacyjne tabele posiadane przez bieżącego użytkownika (ten widok jest używany w powyższym przykładzie). |
ALL_TABLES | Opisuje tabele relacyjne dostępne dla bieżącego użytkownika. |
DBA_TABLES | Opisuje wszystkie relacyjne tabele w bazie danych. |
USER_ALL_TABLES | Opisuje tabele obiektów i tabele relacyjne należące do bieżącego użytkownika. |
DBA_ALL_TABLES | Opisuje wszystkie tabele obiektów i tabele relacyjne w bazie danych. |
ALL_ALL_TABLES | Opisuje tabele obiektów i tabele relacyjne dostępne dla bieżącego użytkownika. |