סדי מסדי נתונים יזהו את השם אורקל כתחנת כוח בעולם מערכת ניהול מסדי הנתונים (DBMS). אורקל ייצרה פתרונות DBMS בעלי עוצמה גבוהה מאוד במשך עשרות שנים ונשארת מובילה בתחום. משתמשי קצה רבים של מוצרי מסדי נתונים עלולים להתבלבל או לבלבל כאשר הם משתמשים בפתרון שנקבע מראש וזה יוצר הודעת שגיאה. הודעת שגיאה נפוצה שהופקה על ידי אורקל היא שגיאת ORA-06512.
ראה גם את המאמר שלנו כיצד לתקן את השגיאה ora-00942
אורקל היא מערכת ניהול מסד נתונים שקיימת כבר ארבעים שנה בצורות שונות. זה במקור השתמש במשהו שנקרא סכמת SCOTT, על שם אחד העובדים המקוריים של אורקל. התחברת אפילו ל- Oracle בפעם הראשונה עם שם המשתמש 'scott' והסיסמה 'tiger' שנקראת על שם החתול של סקוט. כעת יש כמה סכימות המשמשות, תלוי במה אתה משתמש ב- Oracle.
אם תרצה ללמוד עוד על אורקל מהיסוד, דף זה שימושי מאוד.
תיקון שגיאות ORA-06512
ב- Oracle, שגיאת ORA-06512 היא שגיאת חריגה כללית שאומרת לך היכן משהו משתבש. זו אחת השגיאות הפחות ספציפיות שמייצר אורקל, מכיוון שהיא אומרת רק שיש בעיה, אך לא מה משתבש.
לדוגמה, הודעת שגיאה טיפוסית עשויה להופיע:
“ORA-01422: אחזור מדויק מחזיר יותר ממספר השורות המבוקש
ORA-06512: ב- "DATABASE_NAME", קו 66
ORA-06512: בשורה 1 ″
השורה הראשונה מציגה לך איזה סוג של שגיאה מתרחשת, במקרה זה, השאילתה מחזירה יותר נתונים ממה שהשאילתה מצפה כך שהיא לא יודעת איך לטפל בה. קוד 'ORA-01422' הוא קוד השגיאה בפועל שעליך לבדוק. ORA-06512 הוא רק קוד השגיאה הכללי.
השורה השנייה מגלה היכן השגיאה מתרחשת. ה- DATABASE_NAME עומד להיות מסד הנתונים בו אתה עובד באותה עת. קו 66 הוא הקו בו מתרחשת השגיאה והוא הקו שעליך לבדוק כדי לתקן את השגיאה.
השורה השלישית בתחביר השגיאה מגלה מאיפה השיחה מגיעה. בדוק את שורה אחת ותראה שיחה ל- DATABASE_NAME.
כדי לתקן את השגיאה הספציפית הזו, עליך לתקן את הבעיה שנגרמה על ידי ORA-01422, שהיא 'אחזור מדויק מדויק יותר ממספר השורות המבוקשות', או שאתה צריך להוסיף מטפל חריג כדי לומר ל- Oracle להתעלם ממנו. מכיוון שתיקון נושא הליבה עדיף תמיד, זו הדרך ללכת.
יש שני דברים שאתה יכול לעשות. אם אתה מצפה שהשאילתה תחזור יותר משורה אחת, תוכל לשנות אותה כך שהיא לא תופתע. אם אתה רק מצפה שהשאילתה תחזיר שורה אחת, תוכל לשנות אותה גם לשם כך.
מצפה ליותר משורה יחידה:
עבור X ב (בחר * מה t איפה …)
לולאה
- עבד את רשומת ה- X כאן
סוף לולאה;
זה אמור למחוק את השגיאה בשאילתות בסיסי נתונים שבהם הוחזרו יותר משורה אחת.
אם אתה רק מצפה להחזר שורה אחת, אתה יכול לנסות:
התחל
בחר * לתוך ….
מאיפה …
תהליך….
יוצא מן הכלל
כאשר NO_DATA_FOUND אז
קוד טיפול בשגיאות כאשר לא נמצאה רשומה
כאשר TOO_MANY_ROWS אז
קוד טיפול בשגיאות כאשר נמצאים יותר מדי רשומות
סוף;
שיטה שנייה זו אמורה לספק רק את השורה היחידה מבלי לזרוק את 'ORA-01422: שגיאה מדויקת מחזירה יותר ממספר השורות המבוקש ולכן השגיאה המקורית ORA-06512.
ניתן גם לצבוט את השאילתה כך שתחזיר רק את השורה הראשונה של תשובת שורה מרובה. זה עשוי לעבוד אם אין לך שליטה מלאה על בסיס הנתונים או שאתה לא רוצה להתעסק עם דברים יותר מדי, אך עדיין צריך תשובה.
להכריז
סמן c1 לבחירה * מתוך t היכן …
התחל
c1 פתוח;
להביא C1 לתוך ..
אם (c1% לא מבוסס) אז
טיפול בשגיאות לא נמצאה רשומה
סוף אם;
סגור c1;
סוף;
(אם אתה מכיר את SQL, אתה עלול להיות קצת מבולבל משורות הפקודה האלה … אורקל אינה משתמשת ב- Transact-SQL אלא בעצם סיומת שפה פרוצדורלית של SQL, PL / SQL. בעוד שהיא דומה ל- Transact-SQL, PL / SQL כן הרבה דברים חכמים והוא כלי חזק מאוד בפני עצמו. יתכן שתמצאו שאלות נפוצות בנושא PL / SQL כשאתה מנסה ללמוד על אורקל.)
אז השיעור הבסיסי כאן הוא מאשר שגיאה ORA-06512, כשלעצמה, אינה דבר שתוכלו לתקן ישירות. במקום זאת עליכם להבין מהי השגיאה בפועל, שקודי השגיאה האחרים יגידו לכם ואז לטפל בשגיאות אחת אחת.
יש לך טיפים או טריקים של אורקל לשתף? ספר לנו עליהם בתגובות!