האם נוכל להשתמש ב-execute immediate עבור הצהרת select?
האם נוכל להשתמש ב-execute immediate עבור הצהרת select?

וִידֵאוֹ: האם נוכל להשתמש ב-execute immediate עבור הצהרת select?

וִידֵאוֹ: האם נוכל להשתמש ב-execute immediate עבור הצהרת select?
וִידֵאוֹ: Полный курс React Query за час | TanStack Query v4 для начинающих 2024, אַפּרִיל
Anonim

התכנית יכול להשתמש ב-EXECUTE IMMEDIATE . בצע מיידית מגדיר א בחר לולאה כדי לעבד את השורות המוחזרות. אם ה בחר מחזיר רק שורה אחת, אין צורך להשתמש א בחר לוּלָאָה.

מזה, איך השתמש בביצוע מיידי?

אתה יכול לשים א בצע מיידית משפט עם ה-RETURNING BULK COLLECT INTO בתוך משפט FORALL. אתה יכול לאחסן את התוצאות של כל הצהרות INSERT, UPDATE או DELETE בקבוצה של אוספים. אתה יכול להעביר רכיבי אוסף מנויים ל- בצע מיידית הצהרה דרך ה משתמש סָעִיף.

לאחר מכן, השאלה היא האם אנו צריכים להתחייב לאחר ביצוע מיידי? לְבַצֵעַ אינו נדרש לאחר כֹּל בצע מיידית . אמירות מסוימות לַעֲשׂוֹת לֹא לִדרוֹשׁ א לְבַצֵעַ ; למשל, אם אתה לקצץ טבלה עם TRUNCATE. כל עבודה לא מחויבת במסגרת העסקה הנוכחית מחוייבים או התגלגל לאחור - לא רק האמירה יצא לפועל דרך בצע מיידית.

באופן זה, האם נוכל להשתמש ב-execute מיידי בפונקציית Oracle?

ה בצע מיידית משפט מבצע משפט SQL דינמי או אנונימי PL/SQL לַחסוֹם. אתה יכול להשתמש זה להנפיק הצהרות SQL שלא ניתן לייצג ישירות ב PL/SQL , או לבנות הצהרות איפה אתה כן לא יודע מראש את כל שמות הטבלאות, סעיפי WHERE וכן הלאה.

מדוע אנו משתמשים בביצוע מיידי ב-Oracle?

בצע מיידית מאפשר ביצוע של משפט DML או DDL אשר מוחזק כמחרוזת ומוערך רק בזמן ריצה. זה מאפשר ליצור באופן דינמי את ההצהרה בהתבסס על לוגיקה של התוכנית. בצע מיידית זו גם הדרך היחידה שאתה יכול לבצע DDL בתוך a PL/SQL לַחסוֹם.

מוּמלָץ: