מהו Oracle SQL Code 955?

מְחַבֵּר: Christy White
תאריך הבריאה: 5 מאי 2021
תאריך עדכון: 17 נוֹבֶמבֶּר 2024
Anonim
מהו Oracle SQL Code 955? - מאמרים
מהו Oracle SQL Code 955? - מאמרים

תוֹכֶן

שגיאת Oracle PL / SQL 955, הידועה יותר כ ORA-00955, מתרחשת כאשר משתמש יוצר אובייקט במסד הנתונים עם שם בשימוש על ידי אובייקט שכבר קיים, כגון טבלה, תצוגה, אינדקס, שם נרדף או קבוצה. מתן האובייקט שם אחר פותר את השגיאה.


ORA-00955 היא שגיאת חריגה המתרחשת עם שם שהוקצה כבר לאובייקט אחר (ג'סטין סאליבן / Getty Images / Getty Images)

הודעת שגיאה

משתמש יוצר אובייקט בשורת הפקודה של Oracle PL / SQL עם שם מסוים ומקבל את ההודעה "שם ORA-00955 נמצא כבר בשימוש על ידי אובייקט קיים".

סיבות

הודעת השגיאה עלולה להתרחש כאשר משתמש מתקין עדכון, מפעיל Script ב- Oracle PL / SQL שמוחק או יוצר טבלאות או אינדקסים או משתמש במילה השמורה לאובייקט שהוגדר על-ידי המערכת. בדרך כלל, המשתמש ינסה ליצור אובייקט עם השם שהוקצה כבר לאובייקט אחר במסד הנתונים.

פתרון

מומלץ למשתמשים לבחור שם או עצם אחר, או לשנות או לשנות שם של אובייקט קיים כדי לאפשר את השימוש בשם הרצוי. ראה DBA_OBJECTS או USER_OBJECTS כדי לאשר אם למשתמש אחר יש שם בשימוש.

בדוק גם כינויים ומילים נרדפות לציבור עבור השם הקיים, תוך שימוש בהצהרה הבאה:

בחר * מתוך ALL_OBJECTS WHERE ObjectName = "NAME";


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

התעלמות מהשימוש בטיפול חריג

משתמשים יכולים לעקוף את ORA-00955 על-ידי יצירת מטפל חריג המתעלם משגיאה ביצירת אובייקט. צור קוד PL / SQL שיטפל בשגיאה והקצה את "NULL" לסטטוס שלה:

DECLARE MyNamedTableExists EXCEPTION; pragma exclud_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'ליצור טמפסטור טבלה (מספר col1)'; BEGIN / לבצע sql_stmt מיידית; / יצירת טבלה MyNamedTableExists AS SELECT * מתוך MySupposedTable; /+ התעלם משגיאות ORA-955 אם שם הטבלה כבר קיים) / EXCEPTION כאשר MyNamedTableExists ואז NULL; END;