האם Raise_application_error חוזר לאחור?
האם Raise_application_error חוזר לאחור?

וִידֵאוֹ: האם Raise_application_error חוזר לאחור?

וִידֵאוֹ: האם Raise_application_error חוזר לאחור?
וִידֵאוֹ: האם כדאי לספר את הכלב לקראת הקיץ? | כאן מסבירים 2024, דֵצֶמבֶּר
Anonim

בתוך טריגר א RAISE_APPLICATION_ERROR עושה זאת לא לבצע א גלגל לאחור , הוא מבטל את הפעולה הנוכחית, כלומר עדכון/הכנס/מחיקה בודד. א גלגל לאחור מחזיר את כל השינויים בתוך העסקה הנוכחית (או עד לנקודת שמירה נתונה), זה שונה.

בדרך זו, מהי Raise_application_error?

לענות העלאת_יישום_שגיאה הוא למעשה הליך שהוגדר על ידי אורקל המאפשר למפתח להעלות חריג ולשייך מספר שגיאה והודעה להליך. אורקל מספקת את העלאת_יישום_שגיאה נוהל כדי לאפשר לך להעלות מספרי שגיאה מותאמים אישית בתוך היישומים שלך.

יתרה מזאת, מה יקרה כאשר תבוצע הצהרת rollback בתוך טריגר? כאשר הדק יורה העסקה הנוכחית עדיין לא הושלמה. כמו COMMIT מסיים עסקה המאפשרת להם בטריגרים היו לשבור את יחידת העבודה. אז שינויים מבוצע בטריגר מחויבים (או מבוטלים) על ידי עסקת הבעלים שהנפיקה את ה-DML שפטר את הדק.

מזה, מה ההבדל בין Pragma Exception_init לבין Raise_application_error?

פרגמה exception init הופך שגיאת Oracle לחריגה בשם. אם פעולת מסד נתונים מעלה ORA-00054 "משאב תפוס", תצטרך לקוד:. Raise_application_error משמש להעלאת שגיאה - exception_init משמש להתמודדות עם שגיאות (אני מניח שאפשר לומר שהן הפכים ב דֶרֶך).

מה זה סקלרם?

SQLERRM פוּנקצִיָה. הפונקציה SQLERRM מחזירה את הודעת השגיאה המשויכת לארגומנט מספר השגיאה שלו. אם הארגומנט מושמט, הוא מחזיר את הודעת השגיאה המשויכת לערך הנוכחי של SQLCODE. SQLERRM ללא ארגומנט שימושי רק במטפל חריג.

מוּמלָץ: