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

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

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

 создать или заменить имя процедуры (параметры)

 в качестве

 начать

     заявления;

 исключение

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

 конец;

А вот и синтаксис для создания функции (в ORACLE),

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

return return_datatype

в качестве

начать

заявления;

return return_value / variable;

исключение;

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

конец;

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

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

функции

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

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

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

  • Числовая функция (например: ABS, SIN, COS)
  • Символьная функция (например: CONCAT, INITCAP)
  • Функция даты и времени (например: LAST_DAY, NEXT_DAY)
  • Функции преобразования (например: TO_CHAR, TO_DATE)
  • Функция сбора (например: CARDINALITY, SET)
  • Агрегатные функции (возвращает одну строку на основе группы строк. Например: AVG, SUM, MAX)
  • Аналитические функции
  • Функции ссылки на объект
  • Модельные функции
  • Пользовательские функции

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

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

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

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