PL/ SQL блок: СТРУКТУРА, Синтаксис, АНОНИМЕН Пример
Какво е PL/SQL блок?
В PL/SQL кодът не се изпълнява в едноредов формат, а винаги се изпълнява от група.ping кода в един елемент, наречен Блокове. В този урок ще научите за тези блокове.
Блоковете съдържат както PL/SQL, така и SQL инструкции. Всички тези инструкции ще се изпълняват като цяло, вместо да се изпълнява една инструкция наведнъж.
Блокова структура
PL/SQL блоковете имат предварително дефинирана структура, в която трябва да се групира кодът. По-долу са различни раздели на PL/SQL блокове.
- Раздел Декларация
- Раздел за изпълнение
- Раздел за обработка на изключения
Картината по-долу илюстрира различните PL/SQL блокове и техния ред на секциите.
Раздел Декларация
Това е първият раздел от PL/SQL блоковете. Този раздел е незадължителна част. Това е разделът, в който ще бъдат декларирани променливи, курсори, изключения, подпрограми, прагма инструкции и колекции, които са необходими в блока. По-долу са дадени още няколко характеристики на тази част.
- Този конкретен раздел не е задължителен и може да се пропусне, ако не са необходими декларации.
- Това трябва да е първият раздел в PL/SQL блок, ако има такъв.
- Този раздел започва с ключовата дума „DECLARE“ за тригери и анонимен блок. За други подпрограми тази ключова дума няма да присъства. Вместо това частта след дефиницията на името на подпрограмата маркира секцията за декларация.
- Този раздел винаги трябва да бъде последван от раздел за изпълнение.
Секция за изпълнение
Изпълнителната част е основната и задължителна част, която всъщност изпълнява кода, който е написан вътре в нея. Тъй като PL / SQL очаква изпълнимите оператори от този блок, това не може да бъде празен блок, т.е. трябва да има поне един валиден изпълним кодов ред в него. По-долу са дадени още няколко характеристики на тази част.
- Това може да съдържа както PL/SQL код, така и SQL код.
- Това може да съдържа един или много блокове вътре като вложен блок.
- Този раздел започва с ключовата дума „НАЧАЛО“.
- Този раздел трябва да бъде последван или от „КРАЙ“, или от раздела за обработка на изключения (ако има)
Раздел за обработка на изключения
Изключението е неизбежно в програмата, което се случва по време на изпълнение и за справяне с това Oracle предостави раздел за обработка на изключения на блокове. Този раздел може също да съдържа PL/SQL изрази. Това е незадължителен раздел от PL/SQL блоковете.
- Това е разделът, в който се обработва изключението, повдигнато в блока за изпълнение.
- Този раздел е последната част от PL/SQL блока.
- Контролът от този раздел никога не може да се върне към блока за изпълнение.
- Този раздел започва с ключовата дума „EXCEPTION“.
- Този раздел винаги трябва да бъде последван от ключовата дума „КРАЙ“.
Ключовата дума 'END' маркира края на PL/SQL блока.
Синтаксис на PL/SQL блок
По-долу е синтаксисът на блоковата структура на PL/SQL.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
Забележка: Блокът винаги трябва да бъде последван от '/', който изпраща информацията към компилатора за края на блока.
Видове PL/SQL блок
PL/SQL блоковете са основно два вида.
- Анонимни блокове
- Наименувани блокове
Анонимни блокове
Анонимните блокове са PL/SQL блокове, които нямат присвоени имена. Те трябва да бъдат създадени и използвани в една и съща сесия, защото няма да се съхраняват в сървъра като обекти на база данни.
Тъй като не е необходимо да се съхраняват в базата данни, не се нуждаят от стъпки за компилиране. Те се пишат и изпълняват директно, а компилирането и изпълнението се случват в един процес.
По-долу са дадени още няколко характеристики на анонимните блокове.
- Тези блокове нямат референтно име, указано за тях.
- Тези блокове започват с ключовата дума 'DECLARE' или 'BEGIN'.
- Тъй като тези блокове нямат референтно име, те не могат да бъдат съхранени за по-късна цел. Те се създават и изпълняват в една и съща сесия.
- Те могат да се обаждат на другите именувани блокове, но извикването на анонимен блок не е възможно, тъй като няма никаква препратка.
- Може да има вложен блок в него, който може да бъде именуван или анонимен. Може също да бъде вложен във всякакви блокове.
- Тези блокове могат да имат и трите секции на блока, в които секцията за изпълнение е задължителна, а другите две секции са незадължителни.
Наименувани блокове
Именуваните блокове имат специфично и уникално име за тях. Те се съхраняват като обекти на базата данни в сървъра. Тъй като те са налични като обекти на база данни, те могат да бъдат препращани или използвани, стига да присъстват на сървъра. Процесът на компилиране за именувани блокове се случва отделно, докато се създават като обекти на база данни.
По-долу са дадени още няколко характеристики на наименуваните блокове.
- Тези блокове могат да бъдат извикани от други блокове.
- Структурата на блока е същата като на анонимен блок, с изключение на това, че никога няма да започва с ключовата дума „DECLARE“. Вместо това ще започне с ключовата дума „CREATE“, която инструктира компилатора да го създаде като обект на база данни.
- Тези блокове могат да бъдат вложени в други блокове. Може също да съдържа вложени блокове.
- Именуваните блокове са основно от два типа:
- Процедура
- функция
Ще научим повече за тези именувани блокове в темите „Процедура“ и „Функция“ в по-късен урок.
Oбобщение
След този урок трябва да сте наясно с PL/SQL блоковете и техните типове, различните секции на блокове и техните употреби. Подробното описание на именуваните PL/SQL блокове ще бъде разгледано в следващия урок.


