Збережена процедура
З Вікіпедії, безкоштовно encyclopedia
Збережена процедура (англ. stored procedure, також звана proc, storp, sproc, StoPro, StoredProc, StoreProc, sp або SP) — підпрограма, доступна застосункам, які мають доступ до системи керування реляційними базами даних (СКРБД). Такі процедури зберігаються у словнику даних бази.
До типових застосувань збережених процедур належать валідація даних[en] (вбудована до бази даних) та механізми контролю доступу. Крім того, збережені процедури можуть збирати та централізувати логіку, яку спочатку було реалізовано в застосунках. Для збереження часу та пам'яті, об'ємні чи складні обробки, що вимагають виконання декількох операторів SQL, може бути зібрано до збережених процедур, і усі застосунки можуть викликати ці процедури. Можна використовувати вкладені збережені процедури шляхом виклику одних процедур з інших.
Збережені процедури подібні до користувацьких функцій[en] (англ. user-defined function, UDF). Основною відмінністю є те, що користувацькі функції повертають результат, та можуть використовуватися як інші функції в запитах та операторах SQL, тоді як збережені процедури не завжди явно повертають результат, та представляють собою окремий виклик. Викликається оператором CALL
.[1]
CALL procedure(...)
або
EXECUTE procedure(...)
Збережені процедури можуть повертати результатні набори, тобто, результати оператора SELECT
. Такі результатні набори можливо оброблювати з використанням курсорів, іншими збереженими процедурами, шляхом пов'язування визначника результатного набору, або застосунками. Збережені процедури також можуть містити оголошені змінні для обробки даних, і курсори, що дозволяють організовувати цикли по рядках таблиці. До операторів керування потоком збережених процедур зазвичай належать IF
, WHILE
, LOOP
, REPEAT
та CASE
, а також інші. Збережені процедури можуть отримувати змінні, повертати результати чи змінювати змінні та повертати їх, залежно від способу та місця оголошення змінної.