Теория для лабораторной работы №5 - "PL/SQL – курсоры и хранимые процедуры", страница 15

 

Чтобы встроить оператор CREATE FUNCTION в тело программы Oracle Precompiler, вы должны закончить оператор ключевым словом END-EXEC, за которым следует разделитель операторов встроенного SQL для определённого языка.

 

Примечание по использованию

Команда CREATE FUNCTION создаёт функцию как уникальный объект схемы. Также вы можете создать функцию как часть пакета.

 

Пример.

Следующий оператор создаёт функцию GET_BAL:

CREATE FUNCTION get_bal(acc_no IN NUMBER)

      RETURN NUMBER

      IS

               acc_bal NUMBER(11,2);

      BEGIN

               SELECT balance

                         INTO acc_bal

                         FROM accounts

                         WHERE account_id = acc_no;

               RETURN(acc_bal);

      END

Функция GET_BAL возвращает баланс данного счёта.

Когда вы вызываете функцию, вы должны указать аргумент ACC_NO – номер счёта, чей баланс нужно получить. Тип данных ACC_NO  - NUMBER.

Функция использует оператор SELECT, чтобы выбрать столбец BALANCE из строки, определённой аргументом ACC_NO в таблице ACCOUNTS. Функция использует оператор RETURN, чтобы возвратить это значение в окружение, из которого она была вызвана.

Вышеприведенная функция может быть использована в операторе SQL:

SELECT get_bal(100) FROM DUAL;

DROP FUNCTION

Назначение команды: убирает уникальную хранимую процедуру из БД.

Требования к использованию: функция должна быть в вашей собственной схеме или вы должны иметь системную привилегию DROP ANY PROCEDURE.

 

Синтаксис:

 

Ключевые слова и параметры:

 

schema

схема, содержащая функцию. Если вы опустите schema, Oracle7 подразумевает функцию в вашей собственной схеме.

function

имя убираемой функции.