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

 

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

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

Процедура – группа инструкций PL/SQL, которую вы можете вызывать по имени. Хранимые процедуры и хранимые функции во многом подобны. Обсуждение применимо к функциям также, как и к процедурам.

С помощью PL/SQL, вы можете группировать несколько инструкций SQL вместе процедурными инструкциями PL/SQL, подобным в других языках программирования, таких как Ada и C. Командой CREATE PROCEDURE вы можете создать процедуру и сохранить её в базу данных. Вы можете вызывать хранимую процедуру из любой среды, из которой вы можете выполнять инструкции SQL.

Хранимые процедуры дают преимущества в следующих областях:

-  разработка;

-  интегрированность;

-  безопасность;

-  производительность;

-  размер памяти;

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

 

Пример.

Следующий оператор создаёт процедуру CREDIT в схеме SAM:

CREATE PROCEDURE sam.credit (acc_no IN NUMBER, amount IN NUMBER)

      AS BEGIN

                         UPDATE accounts

                                   SET balance = balance + amount

                                   WHERE account_id = acc_no;

      END;

 

Процедура CREDIT кредитует данный банковский счёт на заданную сумму. Когда вы вызываете процедуру, нужно определить следующие аргументы:

ACC_NO   – номер кредитуемого банковского счёта. Тип – NUMBER.

AMOUNT  – сумма кредита. Тип – NUMBER.

Процедура использует оператор UPDATE для увеличения значения в столбце BALANCE таблицы ACCOUNTS на значение аргумента AMOUNT, для счёта, определяемого аргументом ACC_NO.

Выполнение процедуры или функции

Выполнение процедуры или функции осуществляется командой SQL * Plus EXEC, за которой следует имя процедуры или функции. Например, для выполнения процедуры DSS с одним параметром, необходимо в командной строке ввести: