Обратимся к рассмотренной выше процедуре AddNewStudent и вызовем ее из следующего анонимного блока PL/SQL:
Переменные v_NewMajor передаются процедуре AddNewStudent в качестве аргументов. В этом контексте они называются фактическими параметрами (actual parameter), а параметры, указанные при объявлении процедуры (p_FirstName, p_LastName, p_Major), являются формальными параметрами (formal parameter). Фактические параметры содержат значения, передаваемые процедуре при ее вызове, и в них записываются результаты, возвращаемые процедурой (в зависимости от вида параметра). Именно значения фактических параметров используются в процедуре. Формальные параметры выступают в роли места расположения фактических параметров. При вызове процедуры формальным параметрам присваиваются значения фактических параметров. Внутри процедуры все действия выполняются над формальными параметрами. Когда процедура заканчивается, фактическим параметрам присваиваются значения формальных параметров. Все операции присваивания соответствуют стандартным правилам, установленным в PL/SQL для таких операций, в том числе правилам преобразования типов.
Формальные параметры бывают трех видов: IN (в), OUT (из) и IN OUT (в Oracle8 г добавлен модификатор NOCOPY). Если для формального параметра вид не указан, то по умолчанию устанавливается IN. Различия между этими видами описаны в таблице 9.1. Приведем пример:
Внимание
В версиях Oracle до 7.3.4 и в версии 8.0.3 не разрешается считывать параметры OUT, это можно делать в Oracle8 версии 8.0.4 и выше (см. ниже раздел "Чтение параметров OUT").
< Предыдущая | Следующая > |
---|