Przepływ sterowania jest jednym z podstawowych elementów składowych programowania. Definiuje kolejność, w jakiej różne bloki kodu są wykonywane w programie.
Podobnie jak większość języków programowania, język Oracle PL/SQL zapewnia różne instrukcje przepływu sterowania, takie jak JEŻELI-TO, CASE, FOR, WHILE itp.
W tym poście nauczymy się, jak pracować z instrukcją CASE w PL/SQL, aby wprowadzić przepływ sterowania w naszych zapytaniach Oracle.
Wprowadzenie do Oświadczenia CASE
Instrukcja CASE umożliwia zdefiniowanie sekwencji instrukcji. Następnie instrukcja case wybiera jedną sekwencję do wykonania na podstawie określonego warunku.
Pomyśl o tym jako o wydajniejszym sposobie deklarowania zestawu bloków if-then przy jednoczesnym zachowaniu czytelności.
Możemy wyrazić składnię instrukcji CASE w Oracle, jak pokazano poniżej:
WALIZKAKIEDY warunek1 TO wynik1
KIEDY warunek2 TO wynik2
...
INACZEJ wynik
KOŃCZYĆ SIĘ
Instrukcja CASE ocenia każdy warunek w klauzulach WHEN w tej składni.
Jeśli instrukcja znajdzie pasującą instrukcję, zwraca pasujący wynik. Jednak w niektórych przypadkach instrukcja case może nie znaleźć pasującego warunku. W takim scenariuszu instrukcja wykonuje wynik, który jest zdefiniowany w bloku ELSE.
UWAGA : Blok ELSE jest opcjonalny. Jeśli jest niedostępny, aparat bazy danych używa następującej składni:
W PRZECIWNYM RAZIE:PODNIEŚ CASE_NOT_FOUND;
Dzięki temu silnik bazy danych może zgłosić wyjątek i wstrzymać wykonywanie, gdy nie ma pasującego warunku.
Przykład 1: Podstawowy przykład instrukcji CASE
Ten przykład pokazuje podstawowe przykładowe użycie operatora case w Oracle:
ogłosićnumer wieku;
znak wpisu(10);
rozpocząć
wiek := 24;
wiek przypadku
kiedy 17 wtedy
wpis := 'określony';
kiedy 24 wtedy
wpis := '9,99';
kiedy 45 wtedy
wpis :='15,99';
w przeciwnym razie
wpis := 'niedozwolone';
obudowa końcowa;
DBMS_OUTPUT.PUT_LINE(wpis);
kończyć się;
Dostarczona ilustracja powinna przetestować każdy pasujący warunek i zwrócić odpowiedni stan. Na przykład, ponieważ warunek dopasowania to 24, klauzula zwraca następującą postać:
9,99Przykład 2: Instrukcja CASE z tabelą bazy danych
W tym przykładzie użyto instrukcji case z tabelą bazy danych.
wybierz imię, nazwisko, wynagrodzenie,walizka
kiedy pensja 2500, wtedy „wysoka”
inaczej „Nieznany”
zakończyć jako status_wynagrodzenia
od PRACOWNIKÓW;
Dostarczone zapytanie wykorzystuje instrukcję case do przetestowania zakresu wynagrodzeń z tabeli pracowników.
Wynikowa wartość jest taka, jak pokazano poniżej:
Wniosek
W tym poście nauczyłeś się, jak używać instrukcji case Oracle do testowania różnych warunków i wykonywania akcji, jeśli któraś z nich jest prawdziwa.