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

Оглавление:

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

Видео: Разница между хранимой процедурой и функцией

Видео: Разница между хранимой процедурой и функцией
Видео: Видеокурс по SQL Essential. Урок 8. Хранимые процедуры. Пользовательские функции 2024, Июль
Anonim

Хранимая процедура и функция

Хранимые процедуры и функции представляют собой два типа программных блоков. Оба они должны иметь позывные. Эти вызывающие имена используются для вызова их внутри другого блока программирования, такого как процедуры, функции и пакеты или SQL-запросы. Оба этих типа объектов принимают параметры и выполняют задачу, стоящую за этими объектами. Это синтаксис (в ORACLE) для создания хранимой процедуры, создать или заменить процедуру имя_процедуры (параметры)

как

начало

утверждения;

исключение

обработка_исключений

конец;

А вот синтаксис для создания функции (в ORACLE), создать или заменить функцию имя_функции (параметры)

возврат return_datatype

как

начало

утверждения;

return return_value/переменная;

исключение;

обработка_исключений;

конец;

Хранимые процедуры

Как упоминалось выше, хранимые процедуры называются программными блоками. Они принимают параметры в качестве входных данных пользователя и обрабатывают их в соответствии с логикой процедуры и выдают результат (или выполняют определенное действие). Эти параметры могут быть типов IN, OUT и INOUT. Объявления переменных, присвоения переменных, операторы управления, циклы, SQL-запросы и другие вызовы функций/процедур/пакетов могут находиться внутри тела процедур.

Функции

Функции также являются именованными блоками программирования, которые должны возвращать значение с помощью оператора RETURN, и прежде чем вернуть значение, его тело также выполняет некоторые действия (согласно заданной логике). Функции также принимают параметры для запуска. Функции можно вызывать внутри запросов. Когда функция вызывается внутри запроса SELECT, она применяется к каждой строке набора результатов запроса SELECT. Существует несколько категорий функций ORACLE. Они,

Однострочные функции (возвращает один результат для каждой строки запроса)

Есть подкатегории функций одной строки.

  • Числовая функция (пример: ABS, SIN, COS)
  • Символьная функция (пример: CONCAT, INITCAP)
  • Функция даты и времени (например: ПОСЛЕДНИЙ_ДЕНЬ, СЛЕДУЮЩИЙ_ДЕНЬ)
  • Функции преобразования (например: TO_CHAR, TO_DATE)
  • Функция сбора (пример: CARDINALITY, SET)
  • Агрегатные функции (возвращает одну строку на основе группы строк. Пример: AVG, SUM, MAX)
  • Аналитические функции
  • Функции ссылки на объект
  • Функции модели
  • Определяемые пользователем функции

В чем разница между функцией и хранимой процедурой?

• Все функции должны возвращать значение с помощью оператора RETURN. Хранимые процедуры не возвращают значения с помощью оператора RETURN. Оператор RETURN внутри процедуры возвращает управление вызывающей программе. Параметры OUT могут использоваться для возврата значений из хранимых процедур.

• Внутри запросов можно вызывать функции, но внутри запросов нельзя использовать хранимые процедуры.

• Тип данных RETURN должен быть включен для создания функции, но в хранимой процедуре DDL это не так.

Рекомендуемые: