כמו כל שפות התכנות העיקריות, PL/SQL תומכת בלולאות המאפשרות לחזור על סט של הוראות עד לעמידה בתנאי מסוים.
במדריך זה, נחקור את השימוש במשפט LOOP ב-PL/SQL כדי לבצע שוב ושוב בלוק קוד.
לולאות אורקל
שפת PL/SQL תומכת במבני הלולאה השונים כגון לולאות 'for' ו-'while'. אנו יכולים לבטא את התחביר של לולאה גנרית ב-Oracle כפי שמוצג בקטע הבא:
<< תווית >> לוּלָאָה
loop_statement;
END LOOP loop_label;
זה מכיל את מילת המפתח LOOP ואת גוף הלולאה לביצוע והוא מוקף עם מילת המפתח END LOOP.
בלוק LOOP מריץ את הפעולות שהוגדרו ומחזיר את הפקד לסעיף הלולאה העליון לאחר השלמתו. זה בדרך כלל מוקף בסעיף EXIT או EXIT WHEN כדי לסיים את הלולאה לאחר עמידה בתנאי מסוים. זה עוזר למנוע את הלולאות האינסופיות.
תחביר Oracle For Loop:
הבא מציג את התחביר של לולאת 'for' ב-PL/SQL:
התחלFOR loop_variable IN [lower_bound..upper_bound] LOOP
-- קוד שיבוצע בלולאה
END LOOP;
סוֹף;
ה-loop_variable מאפשר לך להגדיר לולאה המשמשת לשליטה בלולאה ובגבול התחתון והעליון. הגבול העליון והתחתון מציינים את ערכי הטווח שבהם מתרחשת הערכת הלולאה.
Oracle While Loops
אנו יכולים גם להגדיר את לולאות ה'תוך כדי' ב-PL/SQL כפי שמודגם על ידי התחביר הבא:
התחלמצב WHILE LOOP
-- פעולת לולאה
END LOOP;
סוֹף;
בלולאת 'while', פעולת הלולאה מבוצעת שוב ושוב בזמן שהתנאי נכון.
Oracle Cursor For Loops
אורקל תומכת גם בלולאות 'הסמן עבור' המאפשרות לנו לבצע סט הוראות עבור כל שורה בערכת תוצאות נתונה. ניתן לבטא את התחביר באופן הבא:
התחלFOR loop_variable IN (בחר עמודה1, עמודה2, ...
משולחן 1, טבלה 2, ...
מצב WHERE) לולאה
-- פעולת לולאה
END LOOP;
סוֹף;
לולאות לדוגמה באורקל
הדוגמאות הבאות מכסות את היסודות של עבודה עם for, while ועבור לולאות סמן ב-Oracle.
דוגמה ל-Oracle For Loop:
דוגמה זו מדגימה כיצד להשתמש בלולאה 'עבור' כדי להדפיס את המספרים מ-1 עד 10.
התחלFOR i IN 1..10 לולאה
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
סוֹף;
דוגמה ללולאת בעוד:
אנו יכולים לבצע פעולה דומה באמצעות לולאת while כפי שמוצג להלן:
התחללְהַכרִיז
i NUMBER := 1;
התחל
WHILE i <= 10 לולאה
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
סוֹף;
סוֹף;
זה אמור לבצע פעולה דומה ללולאת 'for'.
דוגמה לסמן ללולאה:
להלן מראה כיצד להשתמש בלולאת 'הסמן עבור' כדי לקבל את שמו המלא של לקוח:
התחלFOR עובד IN (SELECT first_name, last_name
מעובדים) LOOP
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || עובד.שם_שם);
END LOOP;
סוֹף;
פלט לדוגמה:
סיכום
בפוסט זה, נתקלת בשלושה סוגים עיקריים של לולאות בשפת Oracle PL/SQL. אתה יכול לבדוק את התיעוד כדי לחקור עוד.