Podsumowanie: w tym samouczku dowiesz się o anonimowym bloku PL/SQL i jak go wykonać za pomocą narzędzi programistycznych SQL*Plus i SQL.
PL/SQL Anonymous Block overview
PL/SQL jest językiem o strukturze blokowej, którego kod jest podzielony na bloki. Blok PL / SQL składa się z trzech sekcji: deklaracji, pliku wykonywalnego i sekcji obsługi wyjątków. W bloku sekcja wykonywalna jest obowiązkowa, podczas gdy sekcje deklaracja i obsługa wyjątków są opcjonalne.
blok PL/SQL ma nazwę. Funkcje lub procedury są przykładem nazwanego bloku. Nazwany blok jest przechowywany na serwerze bazy danych Oracle i może być później ponownie użyty.
blok bez nazwy jest blokiem anonimowym. Blok anonimowy nie jest zapisywany na serwerze bazy danych Oracle, więc jest tylko do jednorazowego użytku. Jednak anonimowe bloki PL/SQL mogą być przydatne do celów testowych.
poniższy obraz ilustruje strukturę bloku PL/SQL:
1) Sekcja deklaracji
blok PL/SQL ma sekcję deklaracji, w której deklarujesz zmienne, przydzielasz pamięć kursorom i definiujesz typy danych.
2) Sekcja wykonywalna
blok PL/SQL ma sekcję wykonywalną. Sekcja wykonywalna rozpoczyna się od słowa kluczowego BEGIN
i kończy się 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ługa wyjątków jest miejscem, w którym wychwytujesz i obsługujesz wyjątki zgłoszone przez KOD w sekcji wykonanie.
Uwaga sam blok jest instrukcją wykonywalną, dlatego możesz zagnieżdżać blok wewnątrz innych bloków.
przykład bloku anonimowego PL/SQL
poniższy przykład pokazuje prosty blok anonimowy PL/SQL z jedną sekcją wykonywalną.
sekcja wykonywalna wywołuje procedurę DMBS_OUTPUT.PUT_LINE
, aby wyświetlić wiadomość "Hello World"
na ekranie.
wykonaj blok anonimowy PL/SQL za pomocą SQL*Plus
gdy już masz kod bloku anonimowego, możesz go wykonać za pomocą SQL*Plus, który jest interfejsem wiersza poleceń do wykonywania instrukcji SQL i bloków PL/SQL dostarczanych przez Oracle Database.
poniższy obrazek ilustruje jak wykonać blok PL/SQL za pomocą SQL * Plus:
najpierw połącz się z serwerem bazy danych Oracle za pomocą 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 wprowadź ukośnik do przodu (/
), aby polecić SQL*Plus wykonanie bloku. Po wpisaniu ukośnika do przodu (/), SQL*Plus wykona blok i wyświetli komunikat Hello World
na ekranie, jak pokazano na ilustracjach.
pamiętaj, że musisz wykonać polecenie SET SERVEROUTPUT ON
w każdej sesji łączącej się z bazą danych Oracle, aby wyświetlić wiadomość za pomocą procedury DBMS_OUTPUT.PUT_LINE
.
aby wykonać ponownie wprowadzony blok, użyj polecenia /
zamiast wpisywać wszystko od zera:
jeśli chcesz edytować blok kodu, użyj polecenia edit
. SQL * Plus zapisze blok kodu do pliku i otworzy go w edytorze tekstowym, jak pokazano na poniższym obrazku:
możesz zmienić zawartość pliku w następujący sposób:
i zapisz i zamknij plik. Zawartość pliku zostanie zapisana do bufora i przekompilowana.
następnie możesz ponownie wykonać blok kodu, użyje nowego kodu:
wykonaj blok anonimowy PL/SQL za pomocą programisty SQL
najpierw połącz się z serwerem bazy danych Oracle za pomocą programisty SQL Oracle.
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łady blok anonimowy PL/SQL
w tym przykładzie najpierw deklarujemy zmienną l_message
, która zawiera wiadomość powitalną. Następnie, w sekcji wykonanie, używamy procedury DBMS_OUTPUT.PUTLINE
, aby pokazać zawartość tej zmiennej, zamiast używać dosłownego ciągu znaków.
oto wynik:
Hello World!
następny przykład bloku anonimowego dodaje sekcję obsługi wyjątków, która wychwytuje wyjątki ZERO_DIVIDE
zgłoszone w sekcji wykonywalnej i wyświetla komunikat o błędzie.
błąd jest:
ORA-01476: divisor is equal to zero
teraz powinieneś wiedzieć, jak tworzyć anonimowe bloki PL/SQL i wykonywać je za pomocą narzędzi programistycznych SQL*Plus i Oracle SQL.
- czy ten samouczek był pomocny?
- YesNo