DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Процедуры и функции PL/SQL

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

Создание подпрограмм
Как и другие объекты словаря данных, подпрограммы создаются операто­ром CREATE (процедуры — оператором CREATE PROCEDURE, а функ­ции - оператором CREATE
 









jAntivirus