Разлика между съхранена процедура и функция

Съхранена процедура срещу функция
 

Съхранените процедури и функции са два вида програмиращи блока. И двамата трябва да имат имена за повикване. Тези извикващи имена се използват за извикването им в друг програмен блок, като функции на процедури и пакети или SQL заявки. И двата типа обект приемат параметри и изпълняват задачата зад тези обекти. Това е синтаксисът (в ORACLE) за създаване на съхранена процедура,

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

 като

 започвам

     изявления;

 изключение

     обработка на изключения

 край;

И тук е синтаксисът за създаване на функция (в ORACLE),

създаване или замяна на функция function_name (параметри)

return return_datatype

като

започвам

изявления;

return return_value / променлива;

изключение;

обработка на изключения;

край;

Съхранени процедури

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

Функции

Функциите също са наречени блокове за програмиране, които трябва да върнат стойност, използвайки оператора RETURN, и преди да върне стойност, тялото му също извършва някои действия (според дадената логика). Функциите също приемат параметри за изпълнение. Функциите могат да се извикат вътре в заявките. Когато функция се извиква вътре в SELECT заявка, тя се прилага към всеки ред от набора от резултати от SELECT заявката. Има няколко категории функции ORACLE. Те са,

  • Функции на един ред (връща един резултат за всеки ред на заявката)

Има подкатегории на един ред функции.

  • Числена функция (напр .: ABS, SIN, COS)
  • Функция на знака (напр .: CONCAT, INITCAP)
  • Функция за дата за дата (напр .: LAST_DAY, NEXT_DAY)
  • Функции за преобразуване (напр .: TO_CHAR, TO_DATE)
  • Функция за събиране (напр .: КАРДИНАЛИТЕТ, НАСТРОЙКА)
  • Функции за агрегиране (Връща един ред, въз основа на група редове. Например: AVG, SUM, MAX)
  • Аналитични функции
  • Функции за ориентиране на обекта
  • Функции на модела
  • Потребителски зададени функции

Каква е разликата между функция и съхранена процедура?

• Всички функции трябва да върнат стойност, използвайки оператора RETURN. Съхранените процедури не връщат стойности, използвайки оператора RETURN. RETURN оператор в рамките на процедура ще върне контрола си на извикващата програма. OUT параметрите могат да се използват за връщане на стойности от съхранени процедури.

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

• RETURN тип данни трябва да бъде включен, за да се създаде функция, но в съхранявана процедура DDL, това не е така.