Blok PL/SQL: STRUKTURA, składnia, przykład ANONIMOWY
Co to jest blok PL/SQL?
W PL/SQL kod nie jest wykonywany w formacie jednowierszowym, ale zawsze jest wykonywany poprzez grupowanie kodu w jeden element zwany blokami. W tym samouczku poznasz te bloki.
Bloki zawierają zarówno instrukcje PL/SQL, jak i SQL. Wszystkie te instrukcje zostaną wykonane jako całość, a nie pojedyncza instrukcja na raz.
Struktura blokowa
Bloki PL/SQL mają z góry zdefiniowaną strukturę, w którą ma być pogrupowany kod. Poniżej znajdują się różne sekcje bloków PL/SQL.
- Sekcja deklaracji
- Sekcja wykonawcza
- Sekcja obsługi wyjątków
Poniższy rysunek ilustruje różne bloki PL/SQL i ich kolejność sekcji.
Sekcja deklaracji
To jest pierwsza sekcja bloków PL/SQL. Ta sekcja jest częścią opcjonalną. Jest to sekcja, w której zadeklarowana zostanie deklaracja zmiennych, kursorów, wyjątków, podprogramów, instrukcji pragmy i kolekcji potrzebnych w bloku. Poniżej znajduje się kilka dodatkowych cech charakterystycznych tej części.
- Ta konkretna sekcja jest opcjonalna i można ją pominąć, jeśli nie są potrzebne żadne deklaracje.
- Powinna to być pierwsza sekcja bloku PL/SQL, jeśli istnieje.
- Ta sekcja zaczyna się od słowa kluczowego „DECLARE” dla wyzwalaczy i bloku anonimowego. W przypadku innych podprogramów to słowo kluczowe nie będzie obecne. Zamiast tego część znajdująca się po definicji nazwy podprogramu oznacza sekcję deklaracji.
- Po tej sekcji powinna zawsze następować sekcja wykonania.
Sekcja Wykonawcza
Część wykonawcza to główna i obowiązkowa część, która faktycznie wykonuje zapisany w niej kod. Od PL / SQL oczekuje instrukcji wykonywalnych z tego bloku. Nie może to być pusty blok, tj. powinien zawierać co najmniej jedną prawidłową linię kodu wykonywalnego. Poniżej znajduje się kilka dodatkowych cech charakterystycznych tej części.
- Może zawierać zarówno kod PL/SQL, jak i kod SQL.
- Może zawierać jeden lub wiele bloków w postaci bloku zagnieżdżonego.
- Ta sekcja zaczyna się od słowa kluczowego „BEGIN”.
- Po tej sekcji powinna nastąpić sekcja „END” lub sekcja obsługi wyjątków (jeśli występuje)
Sekcja obsługi wyjątków
Wyjątek jest nieunikniony w programie, który występuje w czasie wykonywania i ma go obsłużyć Oracle udostępnił sekcję obsługi wyjątków w blokach. Ta sekcja może również zawierać instrukcje PL/SQL. Jest to opcjonalna sekcja bloków PL/SQL.
- Jest to sekcja, w której obsługiwany jest wyjątek zgłoszony w bloku wykonawczym.
- Ta sekcja jest ostatnią częścią bloku PL/SQL.
- Sterowanie z tej sekcji nie może nigdy powrócić do bloku wykonawczego.
- Ta sekcja zaczyna się od słowa kluczowego „WYJĄTEK”.
- Po tej sekcji należy zawsze umieścić słowo kluczowe „END”.
Słowo kluczowe „END” oznacza koniec bloku PL/SQL.
Składnia bloku PL/SQL
Poniżej znajduje się składnia struktury bloków PL/SQL.
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
Uwaga: Po bloku zawsze powinien następować znak „/”, który wysyła do kompilatora informację o końcu bloku.
Rodzaje bloków PL/SQL
Bloki PL/SQL są głównie dwojakiego rodzaju.
- Anonimowe bloki
- Nazwane bloki
Anonimowe bloki
Bloki anonimowe to bloki PL/SQL, które nie mają przypisanej żadnej nazwy. Należy je utworzyć i używać w tej samej sesji, ponieważ nie będą przechowywane na serwerze jako obiekty bazy danych.
Ponieważ nie muszą być przechowywane w bazie danych, nie wymagają żadnych etapów kompilacji. Są one pisane i wykonywane bezpośrednio, a kompilacja i wykonanie odbywają się w jednym procesie.
Poniżej znajduje się kilka dodatkowych cech bloków anonimowych.
- Bloki te nie mają określonej nazwy referencyjnej.
- Bloki te zaczynają się od słowa kluczowego „DECLARE” lub „BEGIN”.
- Ponieważ te bloki nie mają żadnej nazwy referencyjnej, nie mogą być przechowywane do późniejszego użytku. Muszą być tworzone i wykonywane w tej samej sesji.
- Mogą wywoływać inne nazwane bloki, ale wywołanie bloku anonimowego nie jest możliwe, ponieważ nie ma on żadnego odniesienia.
- Może zawierać zagnieżdżony blok, który może być nazwany lub anonimowy. Można go także zagnieżdżać w dowolnych blokach.
- Bloki te mogą mieć wszystkie trzy sekcje bloku, w których sekcja wykonania jest obowiązkowa, pozostałe dwie sekcje są opcjonalne.
Nazwane bloki
Nazwane bloki mają specyficzną i niepowtarzalną nazwę. Są one przechowywane jako obiekty bazy danych na serwerze. Ponieważ są one dostępne jako obiekty bazy danych, można się do nich odwoływać lub z nich korzystać, o ile są one obecne na serwerze. Proces kompilacji nazwanych bloków odbywa się oddzielnie podczas tworzenia ich jako obiektów bazy danych.
Poniżej znajduje się kilka dodatkowych cech nazwanych bloków.
- Bloki te można wywoływać z innych bloków.
- Struktura bloku jest taka sama jak bloku anonimowego, z tą różnicą, że nigdy nie zaczyna się od słowa kluczowego „DECLARE”. Zamiast tego zacznie się od słowa kluczowego „CREATE”, które instruuje kompilator, aby utworzył go jako obiekt bazy danych.
- Bloki te można zagnieżdżać w innych blokach. Może również zawierać zagnieżdżone bloki.
- Bloki nazwane są zasadniczo dwojakiego rodzaju:
- Procedura
- Funkcjonować
Więcej informacji na temat tych nazwanych bloków uzyskamy w tematach „Procedura” i „Funkcja” w dalszej części kursu.
Podsumowanie
Po tym samouczku powinieneś znać bloki PL/SQL i ich typy, różne sekcje bloków i ich zastosowania. Szczegółowy opis nazwanych bloków PL/SQL zostanie omówiony w późniejszym samouczku.