"Create or replace view" pytaniem nie jest. Jeżeli nie możesz tworzyć tabel to warto swoje zapytania zapisać jako widoki. Wówczas będziesz mógł sięgać do do niego tak jak do każdej tabeli czyli wymieniając nazwę widoku i tyle.
Przy czym prawdą jest, iż w tabeli dane są, a widoki to
tylko zapis zapytania, każde odwołanie do widoku spowoduje wpierw wykonanie
zapytania a później korzystasz z danych, na czasie nie oszczędzisz w ten
sposób, ale na czytelności kolejnych zapytań, zmniejszeniu ryzyka niewłąściwych
wyników jak najbardziej.
Zapis jak w tytule powoduje utworzenie widoku zgodnie z
kwerendą, a jeżeli już jest o określonej nazwie to definicja widoku zostanie
zaktualizowana, czyli tytułowe pytanie de facto nim nie jest.
Czytelnicy starsi (nie o wiek metrykalny chodzi, a długość
bycia ze mną na blogu) wiedzą, iż swego czasu łączyliśmy dane z rozliczeń
starych z rozliczeniami nowymi, dwie tabele. Użyliśmy do tego klauzulę union.
Skorzystamy z danych ponownie, by połączyć dane z dwóch tabel tworzymy zapytanie i wykorzystujemy jako
definicję widoku i teraz możemy do niego zagląd w prosty sposób, jak do tabeli:
1) Definicja
widoku
create or replace view v_rozliczenia_lacznie
as
select
koniec_roku
,
kontrakt
,
naleznosc naleznosc_saldo
from rozliczenia_stare
union all
select
to_date(data_stanu, 'YYYY-MM-DD')
, kontrakt
, saldo
from rozliczenia_nowe
order by 1, 2;
2) A tak wywołujemy dane z widoku, ale pamiętaj iż wpierw
zostanie wykonane zapytanie definiujące zapytanie a później wyświetlone dane.
select * from
v_rozliczenia_lacznie;
Definiując widoki warto nazwę poprzedzić „v_”. Wówczas zwiększamy
czytelność kodu, wiemy iż to jest odwołanie do widoku :-) Pozdrówka i na plażę
- bo ja z Gdańska, to co mogę Wam podpowiadać :-)
W.
ps. a ponieważ o widoku ten post, to jakimś ładnym okrasić trzeba, to jest:
Brak komentarzy:
Prześlij komentarz