# PL/SQL

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

יש לך הודעות חדשות (השווה לגרסה הקודמת).

| ערך זה זקוק לעריכה, על מנת שיתאים לסגנון המקובל בוויקיפדיה. לצורך זה ייתכנו סיבות אחדות: פגמים טכניים כגון מיעוט קישורים פנימיים, סגנון הטעון שיפור או צורך בהגהה. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה שלו.

PL/SQL (באנגלית: Procedural Language/Structured Query Language) היא שפת תכנות פרוצדורלית קניינית של חברת אורקל ונעשה בה שימוש בעיקר בבסיס הנתונים אורקל. שפת התכנות משלבת את שפת SQL בצורה טבעית ומאפשרת עיבוד נתונים על שרת בסיס הנתונים וללא תחלופה של מידע בינו ובין תחנת לקוח.

## [עריכה] כללי

מכוון ששפת SQL היא שפה דקלרטיבית, היא אינה מאפשרת עיבוד מידע בצורה נוחה - לדוגמא, לא ניתן לבצע בה לולאות. כדי לענות על הצורך של שפה פרוצדורלית, הוציאה חברת אורקל בשנת 1989 תמיכה ראשונה בשפה שכזו כחלק מבסיס הנתונים (גרסה 6). שפת PL/SQL תומכת במשתנים, תנאים, מערכים וניהול שגיאות. בגרסתה הנוכחית, תומכת השפה גם ביצור והפעלה קוד דינמי בזמן הריצה כל ידי הפקודה "Execute immediate". אפשרות זו מאפשרת שימוש חדש ב-PL/SQL: ביצוע של פקודות DDL אשר לא התאפשרו עד אז.

השימוש הנפוץ בשפת PL/SQL הוא בשימוש בפרוצדורות ופונקציות המאוכסנות בתוך בסיס בנתונים. שימוש נפוץ נוסף הוא כתיבת קטעי קוד אשר יופעלו באופן אוטומטי כאשר המשתמש יבצע פקודות DML. קטע קוד שכזה נקרא "trigger".

## [עריכה] תחביר

### [עריכה] מבנה הקוד

קוד PL/SQL נכתב בתבנית זהה. הוא מתחיל במילה DECLARE ומתחתיה הגדרת משתנים, פונקציות ופרוצדורות פנימיות לקטע הקוד שמתחתיה. התחלת הקוד הביצועי מסומן במילה BEGIN. מתחת לשורה זו ניתן לכתוב פקודות PL/SQL שונות כמו גם יצירה של בלוקים נוספים שבהם יוגדרו משתנים נוספים וכן הלאה. כל פקודה בPL/SQL צריכה להסתיים בסימן ;.
כדי לטפל בשגיאות העלולות להתעורר בתוכנה, ניתן להוסיף בלוק של תפיסת שגיאות: EXCEPTION ובו התנייה לאיזה שגיאות על הבלוק הזה לתפוס. כל קטע קוד של PL/SQL מסתיים בשורה ;END.

דוגמא לתוכנית PL/SQL בסיסית:

  DECLARE
    v VARCHAR2(100); /* הגדרת משתנה מסוג VARCHAR2) */
  BEGIN
    v := 'Hello world'; /* השמת ערך למשתנה */
  EXCEPTION
    when OTHERS then
      NULL; /* התעלמות מכל השגיאות */
  END;

### [עריכה] משתנים וטיפוסים

לPL/SQL ישנם מספר סוגים של משתנים:

- משתנים מספרים: BINARY_DOUBLE, BINARY_FLOAT, BINARY_INTEGER, DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INT, INTEGER, NATURAL, NATURALN, NUMBER, NUMERIC, PLS_INTEGER, POSITIVE, POSITIVEN, REAL, SIGNTYPE, SMALLINT.
- משתנים טקסטואלים: CHAR, CHARACTER, LONG, LONG RAW, NCHAR, NVARCHAR2, RAW, ROWID, STRING, UROWID, VARCHAR, VARCHAR2
- משתנים בוליאניים: BOOLEAN
- משתנים תאריכיים: DATE, TIMESTAMP, TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND
- משתנה צמוד-טבלה: ניתן להגדיר משתנה יחיד אשר יקבל תמיד את הסוג של עמודה בטבלה על ידי השימוש במילת הבקרה TYPE%.
- מבנה נתונים צמוד-טבלה: ניתן להגדיר משתנה יחיד אשר יתנהג כמבנה ובו רשימת העמודות של הטבלה על ידי שימוש במילה המקרה ROWTYPE%.
- משתנה בגודל בלתי מוגבל: LOB - משתנים מסוג אובייקט היכול להכיל כמות תווים בלתי מוגבלת. משמש בעיקר לשמירה של קבצים בינאריים (BLOB) או של קבצים טקסטואלים (CLOB) בתוך בסיס הנתונים.
- משתנה מסוג XML - משתנה מסוג אובייקט XML מכיל בתוכו מסמך XML. למשתנה מסוג זה ישנן מתודות לניהול מסמך ה-XMLהמאוכסן בו.
- משתנים מסוג Cursor יכולים לשמור בתוכם שאילתות ובאמצעות לולאות ניתן לעבור על המידע שמחזירה השאילתא.

מעבר לסוגים בסיסים אלה, ניתן להגדיר בשפה מערכים (המכונים Collection).

### [עריכה] תנאים

פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיפדיה ולהשלים אותו. ראו פירוט בדף השיחה.

1. IF
2. CASE WHEN

### [עריכה] לולאות

פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיפדיה ולהשלים אותו. ראו פירוט בדף השיחה.

1. LOOP
2. FOR LOOP
3. WHILE LOOP
4. CURSOR FOR LOOP

מקור: http://he.wikipedia.org../../../p/l/2F/PL_SQL_1f93.html

קטגוריות: ויקיפדיה: ערכים הדורשים עריכה | ויקיפדיה: ערכים הדורשים השלמה

##### Views

- ערך
- שיחה
- גרסה נוכחית

##### קהילה

- שער הקהילה
- עזרה
- דלפק ייעוץ
- מזנון
- יצירת קשר
- ספר אורחים

##### חיפוש

##### שפות אחרות

- English
- Česky
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Slovenčina
- ไทย