Blok PL/SQL: struktura, składnia i przykład anonimowy
⚡ Inteligentne podsumowanie
Blok PL/SQL to podstawowa jednostka, która grupuje instrukcje PL/SQL i SQL, dzięki czemu są one wykonywane razem, a nie wiersz po wierszu. Każdy blok zawiera sekcję deklaracji, wykonania i obsługi wyjątków, a bloki są anonimowe lub nazwane.

Czym jest blok PL/SQL?
W PL/SQL kod nie jest wykonywany w formacie jednoliniowym; jest zawsze wykonywany przez grupęping Kod można umieścić w jednym elemencie zwanym blokiem. W tym samouczku dowiesz się więcej o tych blokach.
Bloki zawierają zarówno instrukcje PL/SQL, jak i SQL. Wszystkie te instrukcje są wykonywane jako całość, a nie pojedynczo.
Struktura blokowa
Bloki PL/SQL mają predefiniowaną strukturę, w której pogrupowany jest kod. Poniżej przedstawiono poszczególne sekcje bloku PL/SQL:
- Sekcja deklaracji
- Sekcja wykonawcza
- Sekcja obsługi wyjątków
Poniższy rysunek ilustruje różne sekcje bloków PL/SQL i ich kolejność.
Sekcja deklaracji
To pierwsza sekcja bloku PL/SQL, która jest opcjonalna. To sekcja, w której deklarowane są zmienne, kursory, wyjątki, podprogramy, instrukcje pragma i kolekcje potrzebne w bloku. Oto kilka dodatkowych cech tej części:
- Ta 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.
- Zaczyna się od słowa kluczowego „DECLARE” dla wyzwalaczy i bloków anonimowych. W przypadku innych podprogramów to słowo kluczowe nie występuje; zamiast tego część po nazwie podprogramu oznacza sekcję deklaracji.
- Po niej zawsze powinna następować część dotycząca wykonania.
Sekcja Wykonawcza
Część wykonawcza to główna i obowiązkowa część, która faktycznie wykonuje zapisany w niej kod. Ponieważ PL / SQL Oczekuje instrukcji wykonywalnych, ten blok nie może być pusty i musi zawierać co najmniej jedną prawidłową linię wykonywalną. Kilka dodatkowych cech tej części:
- Może zawierać zarówno kod PL/SQL, jak i kod SQL.
- Może zawierać jeden lub wiele bloków zagnieżdżonych.
- Zaczyna się od słowa kluczowego 'BEGIN'.
- Po nim powinien nastąpić albo „END”, albo sekcja obsługi wyjątków, jeśli istnieje.
Sekcja obsługi wyjątków
Wyjątki to nieuniknione błędy występujące w czasie wykonywania programu, których obsługa wymaga Oracle Zawiera sekcję obsługi wyjątków w blokach. Sekcja ta może również zawierać instrukcje PL/SQL i jest opcjonalna.
- Jest to sekcja, w której obsługiwany jest wyjątek zgłoszony w bloku wykonania.
- Jest to ostatnia część bloku PL/SQL.
- Sterowanie z tej sekcji nie może nigdy powrócić do bloku wykonawczego.
- Zaczyna się od słowa kluczowego „WYJĄTEK”.
- Zawsze powinno następować po nim 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 znajdować się znak '/', który wysyła do kompilatora informację o końcu bloku.
Typy bloków PL/SQL
Istnieją dwa główne typy bloków PL/SQL:
- Anonimowe bloki
- Nazwane bloki
Przed opisaniem każdego z nich pokrótce je porównamy.
| WYGLĄD | Anonimowy blok | Nazwany blok |
|---|---|---|
| Ma imię | Nie | Tak |
| Przechowywane w bazie danych | Nie | Tak, jako obiekt |
| Zaczynać z | DEKLARUJ lub ROZPOCZNIJ | TWORZENIE |
| Wielokrotnego użytku | Tylko ta sama sesja | Możliwość wywołania w dowolnym momencie |
Bloki anonimowe
Bloki anonimowe to bloki PL/SQL, które nie mają przypisanej żadnej nazwy. Muszą być tworzone i używane w tej samej sesji, ponieważ nie są przechowywane na serwerze jako obiekty bazy danych.
Ponieważ nie są przechowywane w bazie danych, nie wymagają oddzielnego kroku kompilacji. Są zapisywane i wykonywane bezpośrednio, a kompilacja i wykonanie odbywają się w jednym procesie. Kilka dodatkowych cech:
- Bloki te nie mają nazwy referencyjnej.
- Zaczynają się od słowa kluczowego „DECLARE” lub „BEGIN”.
- Ponieważ nie mają nazwy referencyjnej, nie można ich zapisać w celu późniejszego wykorzystania; muszą zostać utworzone i wykonane w tej samej sesji.
- Mogą wywoływać inne nazwane bloki, ale wywołanie anonimowego bloku nie jest możliwe, ponieważ nie posiada on żadnego odniesienia.
- Mogą zawierać zagnieżdżony blok nazwany lub anonimowy, a także mogą być zagnieżdżone wewnątrz dowolnego bloku.
- Mogą zawierać wszystkie trzy sekcje, przy czym sekcja wykonania jest obowiązkowa, a pozostałe dwie są opcjonalne.
Nazwane bloki
Nazwane bloki mają określoną i unikalną nazwę. Są przechowywane jako obiekty bazy danych na serwerze, dzięki czemu można się do nich odwoływać i z nich korzystać, dopóki są obecne. Proces kompilacji nazwanych bloków odbywa się osobno, gdy są one tworzone jako obiekty bazy danych. Kilka dodatkowych cech:
- 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 „DECLARE”. Zamiast tego zaczyna się od „CREATE”, co instruuje kompilator, aby utworzył go jako obiekt bazy danych.
- Bloki te mogą być zagnieżdżane w innych blokach i mogą również zawierać zagnieżdżone bloki.
- Bloki nazwane są zasadniczo dwojakiego rodzaju:
- Procedura
- Funkcjonować
Więcej informacji na temat tych nazwanych bloków znajdziesz w przewodniku procedury i funkcje.


