- •12.1. Специальные аспекты работы с бд. Процедура индексирования.
- •12.2. Триггеры
- •12.2.1. Ключевые слова и параметры
- •12.2.2. Компоненты триггера
- •12.2.3.Типы триггеров.
- •12.2.4.Включение и выключение триггеров.
- •C.12.2.5. Удаление триггера
- •C.12.2.6. Корреляционные имена
- •12.3. Процедуры и функции
- •12.4. Функция
- •12.5.Курсоры.
- •14.1. Системы обработки транзакций oltp и olap - технологий
- •14.2. Хранилища данных. Многомерные хранилища данных
- •14.3. Методы аналитической обработки (olap)
- •14.3.1. Хранилища данных
- •14.3.2. Причины внедрения информационных систем на основе хранилищ данных
- •Литература
- •14.5. Olap в России
- •Тема 15. Основы фракталов. Фрактальная математика. Фрактальные методы в архивации. Управления складами данных
- •15.1. Понятие "фрактал"
- •15.2. Классификация фракталов
- •15.2.1. Геометрические фракталы
- •15.2.2. Алгебраические фракталы
- •C.15.2.3. Стохастические фракталы
- •C.15.3. Системы итерируемых функций
- •15.4. Фрактальное сжатие
- •15.5. История фрактального сжатия
- •15.6. Идея фрактальной архивации
- •15.7. Сравнение с jpeg
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;