Podsumowanie: w tym samouczku poznasz blok anonimowy PL/SQL i dowiesz się, jak go wykonać za pomocą narzędzi SQL*Plus i SQL Developer.
Przegląd bloku anonimowego PL/SQL
PL/SQL jest językiem o strukturze blokowej, którego kod jest zorganizowany w bloki. Blok PL/SQL składa się z trzech sekcji: deklaracyjnej, wykonywalnej i obsługi wyjątków. W bloku sekcja wykonywalna jest obowiązkowa, natomiast sekcje deklaracji i obsługi wyjątków są opcjonalne.
Blok PL/SQL ma nazwę. Przykładem bloku nazwanego są Funkcje lub Procedury. Blok nazwany jest zapisywany w serwerze bazy danych Oracle i może być później ponownie wykorzystany.
Blok bez nazwy jest blokiem anonimowym. Blok anonimowy nie jest zapisywany w serwerze bazy danych Oracle, więc jest on przeznaczony tylko do jednorazowego użycia. Jednak bloki anonimowe PL/SQL mogą być przydatne do celów testowych.
Następujący rysunek ilustruje strukturę bloku PL/SQL:
1) Sekcja deklaracji
Blok PL/SQL posiada sekcję deklaracji, w której deklaruje się zmienne, przydziela pamięć dla kursorów i definiuje typy danych.
2) Sekcja wykonywalna
Blok PL/SQL ma sekcję wykonywalną. Sekcja wykonywalna zaczyna się od słowa kluczowego BEGIN
i kończy słowem kluczowym END
. Sekcja wykonywalna musi mieć co najmniej jedną instrukcję wykonywalną, nawet jeśli jest to instrukcja NULL
, która nic nie robi.
3) Sekcja obsługi wyjątków
Blok PL/SQL ma sekcję obsługi wyjątków, która zaczyna się od słowa kluczowego EXCEPTION
. Sekcja obsługi wyjątków to miejsce, w którym wyłapuje się i obsługuje wyjątki zgłoszone przez kod w sekcji wykonania.
Zauważ, że blok sam w sobie jest instrukcją wykonywalną, dlatego można zagnieżdżać blok wewnątrz innych bloków.
Przykład bloku anonimowego PL/SQL
Następujący przykład przedstawia prosty blok anonimowy PL/SQL z jedną sekcją wykonywalną.
Sekcja wykonywalna wywołuje procedurę DMBS_OUTPUT.PUT_LINE
w celu wyświetlenia na ekranie komunikatu "Hello World"
.
Wykonanie anonimowego bloku PL/SQL za pomocą SQL*Plus
Gdy masz już kod anonimowego bloku, możesz go wykonać za pomocą SQL*Plus, który jest interfejsem wiersza poleceń do wykonywania instrukcji SQL i bloków PL/SQL dostarczanym przez Oracle Database.
Następujący rysunek ilustruje, jak wykonać blok PL/SQL przy użyciu SQL*Plus:
Na początku należy połączyć się z serwerem Oracle Database przy użyciu nazwy użytkownika i hasła.
Po drugie, włącz wyjście serwera za pomocą polecenia SET SERVEROUTPUT ON
, aby procedura DBMS_OUTPUT.PUT_LINE
wyświetlała tekst na ekranie.
Po trzecie, wpisz kod bloku i wpisz ukośnik w przód ( /
), aby polecić programowi SQL*Plus wykonanie bloku. Po wpisaniu ukośnika w przód (/), SQL*Plus wykona blok i wyświetli na ekranie komunikat Hello World
, jak pokazano na ilustracjach.
Zauważ, że musisz wykonać polecenie SET SERVEROUTPUT ON
w każdej sesji, w której łączysz się z bazą danych Oracle, aby wyświetlić komunikat przy użyciu procedury DBMS_OUTPUT.PUT_LINE
.
Aby ponownie wykonać wprowadzony blok, używasz polecenia /
zamiast wpisywać wszystko od nowa:
Jeśli chcesz edytować blok kodu, użyj polecenia edit
. Program SQL*Plus zapisze blok kodu do pliku i otworzy go w edytorze tekstu, jak pokazano na poniższym rysunku:
Możesz zmienić zawartość pliku jak poniżej:
A następnie zapisać i zamknąć plik. Zawartość pliku zostanie zapisana do bufora i przekompilowana.
Po tym można ponownie wykonać blok kodu, będzie on używał nowego kodu:
Wykonanie anonimowego bloku PL/SQL za pomocą programu SQL Developer
Najpierw należy połączyć się z serwerem bazy danych Oracle za pomocą programu Oracle SQL Developer.
Po drugie, utwórz nowy plik SQL o nazwie anonymous-block.sql
znajdujący się w katalogu C:\plsql
, który będzie przechowywał kod PL/SQL.
Po trzecie, wprowadź kod PL/SQL i wykonaj go klikając przycisk Execute lub naciskając skrót klawiaturowy Ctrl-Enter.
Więcej przykładów PL/SQL anonimowy blok
W tym przykładzie najpierw deklarujemy zmienną l_message
, która przechowuje wiadomość powitalną. A następnie w sekcji wykonywania używamy procedury DBMS_OUTPUT.PUTLINE
do wyświetlenia zawartości tej zmiennej zamiast używania dosłownego ciągu znaków.
Here is the output:
Hello World!
Następny przykład bloku anonimowego dodaje sekcję obsługi wyjątków, która wyłapuje ZERO_DIVIDE
wyjątek zgłoszony w sekcji wykonywania i wyświetla komunikat o błędzie.
Informacja o błędzie to:
ORA-01476: divisor is equal to zero
Teraz powinieneś już wiedzieć, jak tworzyć anonimowe bloki PL/SQL i wykonywać je za pomocą narzędzi SQL*Plus i Oracle SQL Developer.
- Czy ten tutorial był pomocny?
- TakNie
.