PL/SQLPL/SQL (באנגלית: Procedural Language/Structured Query Language) היא שפת תכנות פרוצדורלית קניינית של חברת אורקל ונעשה בה שימוש בעיקר במסד הנתונים אורקל. שפת התכנות משלבת את שפת SQL בצורה טבעית ומאפשרת עיבוד נתונים על שרת מסד הנתונים וללא תחלופה של מידע בינו ובין תחנת לקוח. כללימכיוון ששפת SQL היא שפה דקלרטיבית, היא אינה מאפשרת עיבוד מידע בצורה נוחה - לדוגמה, לא ניתן לבצע בה לולאות. כדי לענות על הצורך בשפה פרוצדורלית, הוציאה חברת אורקל בשנת 1989 תמיכה ראשונה בשפה שכזו כחלק ממסד הנתונים (גרסה 6). שפת PL/SQL תומכת במשתנים, תנאים, מערכים וניהול שגיאות. החל מגרסה 9, תומכת השפה גם ביצור והפעלה קוד דינמי בזמן הריצה כל ידי הפקודה "Execute immediate". אפשרות זו מאפשרת שימוש חדש ב-PL/SQL: ביצוע של פקודות DDL אשר לא התאפשרו עד אז ללא שימוש במארזים מובנים. שפת PL/SQL משמשת לשם כתיבת פרוצדורות, פונקציות, מארזים וטריגרים המאוכסנים בתוך בסיס-הנתונים. מארזים הם תוכניות המקבצות בתוכן פרוצדורות, פונקציות, וכן משתנים גלובליים פרטיים או פומביים. טריגרים (Triggers) הם קטעי קוד המופעלים באופן אוטומטי בעקבות אירועים מסוגים שונים שיכולים להתרחש בבסיס-הנתונים, כגון: פקודות DML, כניסה ויציאה (Logon/Logoff) או שגיאות בשרת בסיס-הנתונים. שימוש נוסף ב-PL/SQL הוא לשם כתיבת בלוקים אנונימיים (Anonymous Blocks) שהם קטעי קוד שנשלחים לשם הרצה מידית ולא נשמרים בבסיס-הנתונים לשם הרצה חוזרת. בנוסף, משמשת השפה לכתיבת קוד מבוסס אירועים בכלי פיתוח השייכים לחבילת Oracle Developer Suite. תחבירמבנה הקודקוד PL/SQL מזכיר במבנהו את שפת עדה (Ada). הוא מתחיל במילה DECLARE (עבור בלוק אנונימי) או בשורת הגדרה של תוכנית לא אנונימית (כגון פרוצדורה). לאחר מכן, ניתן להגדיר משתנים ופונקציות ופרוצדורות פנימיות. (בבלוק אנונימי ללא משתנים אין לכתוב DECLARE). התחלת הקוד הביצועי מסומנת במילה BEGIN. מתחת לשורה זו ניתן לכתוב פקודות PL/SQL שונות כמו גם יצירה של בלוקים נוספים שבהם יוגדרו משתנים נוספים וכן הלאה. כל פקודה בPL/SQL צריכה להסתיים בסימן ;. כדי לטפל בשגיאות העלולות להתעורר בתוכנה, ניתן להוסיף בלוק של טיפול בחריגות: EXCEPTION ובו התניה לאילו שגיאות על הבלוק הזה לתפוס. כל קטע קוד של PL/SQL מסתיים בשורה ;END. דוגמה לתוכנית PL/SQL בסיסית, השולחת את המחרוזת Hello world לחוצץ (buffer) אשר משמש בדרך כלל להדפסה לפלט הסטנדרטי: DECLARE
v VARCHAR2(100); /* הגדרת משתנה מסוג VARCHAR2) */
BEGIN
SELECT 'Hello world' -- שליפת ערך לתוך המשתנה
INTO v
FROM dual;
dbms_output.put_line ( v ); -- הדפסת המשתנה
EXCEPTION
when OTHERS then /* טיפול בשגיאות */
dbms_output.put_line ( 'error: ' || sqlerrm );
END;
התוכנית מדגימה בלוק אנונימי שבו יש הגדרת משתנה, השמת ערך למשתנה באמצעות משפט SQL, שליחת טקסט באמצעות המארז dbms_output, וכן טיפול בסיסי בשגיאות. לPL/SQL ישנם סוגים רבים של משתנים, שנחלקים לקטגוריות שונות:
מעבר לסוגים בסיסים אלה, ניתן להגדיר בשפה מערכים (המכונים Collection). תנאים
לדוגמה: IF :NEW.FieldName is null
THEN
NEW.FieldName :=Value:
END IF;
לולאות
קישורים חיצוניים
|
Portal di Ensiklopedia Dunia