Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Остальные темы.doc
Скачиваний:
2
Добавлен:
19.08.2019
Размер:
538.11 Кб
Скачать

12.3. Процедуры и функции

 

Процедуры и функции написанные на языке SQL во многом схожи с такими же понятиями в других языках. Процедура сначала:

1. создается при помощи Create or replace procedure

2. компилируется

3. сохраняется в скомпилированном виде в б.д.

4. при вызове процедуры ей можно передавать параметры

Вызовом процедуры является оператор PL\SQL и он не может быть частью выражения. В состав процедуры входит раздел объявлений, выполняемый раздел и раздел исключительных ситуаций.

Объявление процедуры

Create [ or replace] procedure  имя процедуры

[ ( аргумент [{ in /out/ in out}] mun,   тип аргумента, аргумента 2┘┘)]

 {is/ AS}

пример

Create or  replace   procedure p in cena avto

P √ name in out cena avto. Name % type;

P √ god in out number;

P √ probeg in out number;

P √ ctna in out number; as

Begin

  Insert into cena avto (name, god, probeg, cena)

Values (pname, pgod, pprobeg, pcena);

End

┘┘┘┘┘

exception   p in cena avto (▒volga▓,2003,0,210.000);

 

Параметры указанные при объявлении процедуры называются формальными, а при вызове √ фактическими. При вызове процедуры формальным параметрам присваивается значение фактических. Формальные параметры бывают 3 видов

in(в)         out(из)         in out (в,из)

Если  вид не указан то по умолчанию  in

in - значение фактического параметра передается в процедуру при ее вызове. Внутри  процедуры формальные параметры могут использованы толь для чтения. При завершении процедуры фактические параметры не изменяются

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

in out - значение фактического параметра передается в процедуру при ее вызове. Внутри  процедуры формальные параметры могут использованы толь для чтения. При завершении работы процедуры содержание формальных параметров присваиваться фактическим

Тело процедуры это блок PL\SQL, который содержит раздел объявлений, выполняемый раздел и раздел исключ. ситуаций. Раздел  объявлений располагается между ключевым словам is\as и Begin.  Выполняемый  раздел  - между Begin и exception. Раздел  исключ. ситуаций √ exception и end.

 

12.4. Функция

 

                В состав функции входит раздел объявлений, выполняемый раздел и раздел исключ. ситуаций.

Вызов функции - это часть некоторого выражения, а вызов процедуры √ это самостоятельный оператор.      

                Объявление функции

Create [ or replace] function  имя функции

[ ( аргумент [{ in /out/ in out}] mun,  аргумент [{ in /out/ in out}] mun)]

return   возвращаемый тип {is/ AS}

 тело функции

Внутри тела функции оператор return применяется для возврата результата работы функцию в вызванную среду

Return выражение, где выражение есть возвращаемое значение

                Функция применяется когда требуется вернуть одно значение. Значение выражения преобразуются к типу указанному в команде return при описании функции. В функции может быть несколько операторов return, хотя выполняться будет одно из них

Create or  replace   function  имя функции (

F √ name ctna-avto. Name % type,

F √ god ctna-avto. Name % type,

F √ cena ctna-avto. Name % type)

Return varchar 2  is

Begin

Return  F √ cena + 1000;

End;