Основы языка PL/SQL. Гаршина В.В - 31 стр.

UptoLike

Составители: 

31
Синтаксис объявления параметров имеет следующий вид:
par_name [IN|OUT|IN OUT] type
[{:=|DEFAULT} expr];
где par_name – имя параметра, type – его тип, expr – выражение PL/SQL.
Виды формальных параметров:
INвходной. Передает значение из вызывающей среды в подпро-
грамму. Выступает в качестве константы, может быть выражением, кон-
стантой, литералом или инициализированной переменной.
OUTвыходной. Возвращает значение из процедуры в вызываю-
щую
среду. Не может быть присвоен другой переменной или самому себе.
Фактический параметр должен быть переменной и не может быть констан-
той или выражением.
IN OUTвходной / выходной. Передает значение из вызывающей
среды в процедуру и возвращает значение из процедуры в вызывающую
среду. Выступает в качестве инициализированной переменной.
Пример процедуры PL/SQL:
PROCEDURE change_salary
(v_emp_id
IN NUMBER,
v_new_salary IN NUMBER)
IS
BEGIN
UPDATE s_emp
SET salary=v_new_salary
WHERE id=v_emp_id;
COMMIT;
END change_salary;
Функции имеют два основных отличия от процедуры:
функция вызывается как часть выражения;
функция должна возвращать значение.
Существуют функции, определяемые пользователем, и функции SQL.
Функции PL/SQL используются для возврата значения в вызывающую среду.
Существуют следующие команды SQL для создания хранимой
функции:
     Синтаксис объявления параметров имеет следующий вид:

     par_name [IN|OUT|IN OUT] type
              [{:=|DEFAULT} expr];

где par_name – имя параметра, type – его тип, expr – выражение PL/SQL.
      Виды формальных параметров:
      IN – входной. Передает значение из вызывающей среды в подпро-
грамму. Выступает в качестве константы, может быть выражением, кон-
стантой, литералом или инициализированной переменной.
      OUT – выходной. Возвращает значение из процедуры в вызываю-
щую среду. Не может быть присвоен другой переменной или самому себе.
Фактический параметр должен быть переменной и не может быть констан-
той или выражением.
      IN OUT – входной / выходной. Передает значение из вызывающей
среды в процедуру и возвращает значение из процедуры в вызывающую
среду. Выступает в качестве инициализированной переменной.
      Пример процедуры PL/SQL:

     PROCEDURE change_salary
        (v_emp_id IN NUMBER,
         v_new_salary IN NUMBER)
     IS
     BEGIN
         UPDATE s_emp
            SET salary=v_new_salary
          WHERE id=v_emp_id;
        COMMIT;
     END change_salary;
     Функции имеют два основных отличия от процедуры:
     – функция вызывается как часть выражения;
     – функция должна возвращать значение.
     Существуют функции, определяемые пользователем, и функции SQL.
Функции PL/SQL используются для возврата значения в вызывающую среду.
     Существуют следующие команды SQL для создания хранимой
функции:
                                    31