Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с Oracle / 16 - Процедуры и функции в PL SQL.ppt
Скачиваний:
12
Добавлен:
28.06.2021
Размер:
584.7 Кб
Скачать

Пример анонимного блока, объявляющего­ процедуру (2)

В теле программы трижды вызывается процедура printLine:

Первый вызов – пример позиционной нотации. Значе- ния фактических параметров неявно соответствуют формальным параметрам процедуры в тех же позициях­.

Второй вызов – пример именованной нотации. При использовании имен параметры могут указываться в произвольном порядке.

Третий вызов – для параметров со значениями по умол- чанию, фактические параметры можно не указывать.

Функция

Возвращает значение в среду, из которой была вызвана.

Спецификация функции объявляет тип возвращаемого значения. Тело функции должно включать один или более операторов RETURN для возвращения значения функции в вызывающую среду.

Программа может вызвать функцию везде, где выражение действительно (в качестве параметра при вызове процедуры или в правой части оператора присваивания).

Оператор SQL может ссылаться на определенную пользо- вателем функцию в условии­ блока WHERE.

Объявление и использование функции, вычисляющей сумму заказа

Преимущества хранения подпрограмм в базе данных

Возможность повторного использования кода и повы- шение продуктивности разработчиков. Концентрация общих процедур и функций в БД позволяет использовать их в любом приложении.

Целостность данных. Когда правильность хранимых подпрограмм подтверждена, приложения могут пола- гаться на них как на методы доступа к данным, не нару- шающие целостность данных в базе.

Безопасность. Представляют собой скомпилированные программы для доступа к информации, скрывающие доступные им основные структуры БД.

Создание хранимых процедур и функций

Синтаксис создания хранимой процедуры:

CREATE PROCEDURE спецификация_процедуры IS тело_процедуры

Синтаксис создания хранимой функции:

CREATE FUNCTION спецификация _функции IS тело_функции

Процедуру или функцию можно создать заново:

CREATE OR REPLACE спецификация _процедуры IS тело_процедуры

Прямой слэш (/) сообщает, что ввод программы завершен и нужно перейти к выполнению команд.

Создание и вызов процедуры без параметров

CREATE PROCEDURE my_proc IS greetings VARCHAR2 (20) ;

BEGIN

greetings := 'Hello World'; dbms_output . put_line (greetings) ;

END my_proc;

/

 

SET SERVEROUTPUT ON ;

Вызов из командной

EXECUTE my_proc ;

строки

 

BEGIN

 

my_proc;

Вызов из анонимного

END;

блока

/

 

Создание и хранение процедуры printLine в БД Oracle (1)

Создание и хранение процедуры printLine в БД Oracle (2)

Выполнение блока, использующего процедуру printLine

Другой способ выполнения­ PL/SQL- подпрограмм