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