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.

  • 🧱 Podstawowa idea: Code jest pogrupowany w blok, który działa jako całość, łącząc logikę proceduralną z SQL.
  • 📝 Sekcja deklaracji: Opcjonalnie; deklaruje zmienne, kursory, wyjątki i podprogramy używane w bloku.
  • ▶ ️ Sekcja Wykonawcza: Obowiązkowy; zaczyna się od BEGIN i zawiera co najmniej jedno polecenie wykonywalne.
  • 🛡️ Sekcja wyjątków: Opcjonalny; rozpoczyna się od WYJĄTKU i obsługuje błędy w czasie wykonywania.
  • 🏷️ Dwa typy: Bloki anonimowe nie mają nazwy i są uruchamiane raz; bloki nazwane są przechowywane jako obiekty bazy danych.
  • 🔁 Nazwane bloki: Procedury i funkcje to nazwane bloki, które można wywoływać wielokrotnie.
  • terminator: END zamyka blok, a ukośnik wysyła go do kompilatora.

Struktura i składnia bloku PL/SQL

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:

  1. Sekcja deklaracji
  2. Sekcja wykonawcza
  3. Sekcja obsługi wyjątków

Poniższy rysunek ilustruje różne sekcje bloków PL/SQL i ich kolejność.

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.

Składnia bloku 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:

  1. Anonimowe bloki
  2. 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:
  1. Procedura
  2. Funkcjonować

Więcej informacji na temat tych nazwanych bloków znajdziesz w przewodniku procedury i funkcje.

FAQ

Tylko sekcja wykonania, która zaczyna się od BEGIN i kończy na END. Sekcje deklaracji i obsługi wyjątków są opcjonalne i można je pominąć, jeśli nie są potrzebne.

Blok anonimowy nie ma nazwy, nie jest przechowywany i działa w tej samej sesji. Nazwany blok, taki jak procedura lub funkcja, jest przechowywany jako obiekt bazy danych i może być wywoływany wielokrotnie.

W narzędziach takich jak SQL*Plus ukośnik w osobnym wierszu informuje kompilator, że blok jest ukończony i należy go uruchomić. Bez niego narzędzie nadal czeka na dalsze dane wejściowe.

Tak. Sztuczna inteligencja może opakować logikę w nagłówek CREATE PROCEDURE, dodać parametry i przenieść deklaracje w odpowiednie miejsce. Przetestuj wynik, ponieważ wersja zapisana może wymagać jawnych trybów parametrów i obsługi błędów.

Tak. Sekcje deklaracji i wyjątku to niezależne opcje. Blok może zaczynać się od BEGIN, pomijać deklaracje i nadal zawierać sekcję EXCEPTION przed END, aby wychwycić błędy w czasie wykonywania.

Podsumuj ten post następująco: