פרוצדורה מאוחסנת

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה לניווט קפיצה לחיפוש

פְּרוֹצֵדוּרָה מאוחסנתאנגלית: Stored Procedure) היא שיטת כתיבה של שאילתות SQL המאוחסנות בשרת של בסיס הנתונים. כמו בפרוצדורה רגילה, הפרוצדורה המאוחסנת כוללת קוד של התחלה, קוד של סיום, פרמטרים וגוף הפרוצדורה, שבו נכתבות הפעולות המתבצעות בפרוצדורה.

הפרוצדורה המאוחסנת נכתבת בשפת SQL, שהשימוש בה נעשה בכל פעולה שנוגעת למסד הנתונים.

השימוש בפרוצדורה מאוחסנת מתאים במקרים הבאים:

  • אם רוצים לכתוב תוכנית שתשמש למספר יישומים, ניתן לשמור אותה בצד השרת. זה מוריד כפילויות ומשפר גמישות בקוד.
  • הרצת פרוצדורה בשרת מפחיתה את תעבורת המידע בין השרת לאפליקציה.
  • ניתן להשתמש בפרוצדורות לבדיקות נכונות הנתונים integrity constraints, לטיפול בשגיאות, למניפולציה על הנתונים ולטעינת נתונים.

התחביר ליצירת פרוצדורה הוא: <syntaxhighlight lang="text"> CREATE PROCEDURE <procedure name> (<parameters>) <local declarations> <procedure body>; </syntaxhighlight>

דוגמה לפרוצדורה מאוחסנת: <syntaxhighlight lang="text"> CREATE PROCEDURE sp_GetInventory @location varchar(10) AS SELECT Product, Quantity FROM Inventory WHERE Warehouse = @location </syntaxhighlight>

דוגמה לקריאה לפרוצדורה מאוחסנת: <syntaxhighlight lang="text"> CALL <procedure or function name> (<argument list>) </syntaxhighlight>


פְרוצֵדורַה מאוחסנת היא חלק משפת ה-SQL הסטנדרטית ומרחיבה את שפת ה-SQL של בסיס הנתונים.

תנאים ולולאות:

IF <syntaxhighlight lang="text"> IF <condition> THEN <statement list> ELSEIF <condition> THEN <statement list> ELSE <statement list> END IF; </syntaxhighlight>

WHILE <syntaxhighlight lang="text"> WHILE <condition> DO <statement list> END WHILE; </syntaxhighlight>

FOR <syntaxhighlight lang="text"> FOR <loop name> AS <cursor name> CURSOR FOR <query> DO <statement list> END FOR; </syntaxhighlight>

נכון להיום כמעט כל בסיס נתונים יחסי מאפשר כתיבת פרוצדורה מאוחסנת, אולם בסיסי נתונים שונים תומכים בשפות תכנות שונות.

ישנן מספר גרסאות חדשות שיצאו לאחרונה בבסיסי נתונים שאינם יחסיים (NoSQL) ומספר קטן של בסיסי נתונים גדולים (Big Data), שניתן לכתוב בהם פרוצדורת מאוחסנות.