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.

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

Poniższy rysunek ilustruje różne bloki PL/SQL i ich kolejność sekcji.

Struktura blokowa

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.

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 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.

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