Різниця між збереженою процедурою та функцією

Збережена процедура та функція
 

Збережені процедури та функції - це два типи блоків програмування. Вони обоє повинні мати прізвища. Ці імена, що викликають, використовуються для виклику їх всередині іншого блоку програмування, як функції та пакети процедур або 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 це не так.