Процедуры и функции PL/SQL очень похожи на процедуры и функции, используемые в других языках третьего поколения, и обладают аналогичными свойствами. В совокупности процедуры и функции называются подпрограммами (subprogram). В качестве примера рассмотрим следующий фрагмент программы создания процедуры в базе данных:
Процедура создается при помощи оператора CREATE OR REPLACE PROCEDURE. После создания процедуры она сначала компилируется, а затем сохраняется в базе данных в скомпилированном виде. Скомпилированный код можно впоследствии выполнить из другого блока PL/SQL. Исходный код процедуры также сохраняется в базе данных (см. главу 10).
При вызове процедуры ей можно передавать параметры. В рассмотренном примере процедуре во время ее выполнения передаются имя, фамилия и профилирующий предмет студента. Внутри процедуры параметр pFirstName будет иметь значение 'Zelda', p_LastName - 'Zudnik', a p_Major — 'Computer Science', так как именно эти литералы указаны при вызове процедуры.
• Вызов процедуры — это оператор PL/SQL; в выражениях процедуры не вызываются. При вызове процедуры управление программой передается первому исполняемому оператору внутри нее. Когда процедура заканчивается, управление возвращается оператору, следующему за вызовом процедуры. В этом смысле процедуры PL/SQL функционируют точно так же, как и процедуры других языков третьего поколения (языков 3GL). Функции вызываются в выражениях
(см. ниже).
• Процедура — это блок PL/SQL, в состав которого входят раздел объявлений, выполняемый раздел и раздел обработки исключительных ситуаций. Как и в анонимных блоках, необходимым здесь является
только выполняемый раздел. Например, в процедуре AddNewStudent содержится лишь выполняемый раздел.
Создание подпрограмм
Как и другие объекты словаря данных, подпрограммы создаются оператором CREATE (процедуры — оператором CREATE PROCEDURE, а функции - оператором CREATE
< Предыдущая | Следующая > |
---|