Хранимые функции

Материал из Викиконспекты
Перейти к: навигация, поиск
НЕТ ВОЙНЕ

24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.

Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.

Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.

Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.

Антивоенный комитет России

Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки.


Определение:
Хранимая функция — фрагмент кода, хранящийся в БД, при исполнении которого может возвращаться как скалярное значение, так и таблицы.


Отличие от хранимых процедур

  • Возврат скалярного значения, в то время как хранимая процедура возвращает только таблицы
  • Использование в выражениях

Создание

Синтаксис

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

create [aggregate] function
имя(параметры)
returns тип
тело

В теле функции можем указывать оператор return, который приводит к возврату значения. Если в теле функции не будет оператора return, то считается, что данная функция возвращает null.

Пример

create function add(a int, b int) returns int
   return a + b;

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

Особенности

  • Обращение к таблицам. Многие СУБД запрещают в функции обращаться к таблицам, что негативно сказывается на возможности применения.
  • Возвращаемые значения.
    • Поддержка встроенных типов есть всегда (в том числе varchar и прочее)
    • Реже есть поддержка пользовательского типа. Еще реже - таблицы в качестве возвращаемого значения, но есть СУБД, позволяющие получать из функции таблицу целиком, и снаружи обработать ее (например, во from). В последнем случае хранимая функция практически не отличима от хранимой процедуры.

Литература