![Що таке код Oracle SQL 955? - Статті Що таке код Oracle SQL 955? - Статті](https://a.laermfeuer.org/articles/o-que-o-oracle-sql-code-955-1.jpg)
Зміст
Помилка 955 Oracle PL / SQL, більш відома як ORA-00955, виникає, коли користувач створює об'єкт у базі даних з іменем, який використовується вже існуючим об'єктом, таким як таблиця, перегляд, індекс, синонім або група. Даючи об'єкту інша назва вирішує помилку.
Повідомлення про помилку
Користувач створює об'єкт на командному рядку PL / SQL Oracle з певним ім'ям і отримує повідомлення "Ім'я ORA-00955 вже використовується існуючим об'єктом".
Причини
Повідомлення про помилку може виникати, коли користувач встановлює оновлення, запускає сценарій в Oracle PL / SQL, який стирає або створює таблиці або індекси, або використовує слово, зарезервоване для системного об'єкта. Як правило, користувач спробує створити об'єкт з іменем, вже призначеним іншому об'єкту в базі даних.
Рішення
Користувачам рекомендується вибрати іншу назву або об'єкт, або змінити та перейменувати існуючий об'єкт, щоб дозволити використання потрібного імені. Див. DBA_OBJECTS або USER_OBJECTS для підтвердження використання будь-якого іншого користувача.
Також перевірте псевдоніми та загальнодоступні синоніми існуючого імені, використовуючи таке твердження:
SELECT * ВІД ALL_OBJECTS WHERE ObjectName = "NAME";
Таблиця ALL_OBJECTS містить список доступних для користувача об'єктів, доступних для конкретного ідентифікатора входу. Щоб повторно використовувати ім'я, видаліть усі небажані об'єкти з однаковою назвою.
Ігнорування помилки за допомогою обробки виключень
Користувачі можуть обходити ORA-00955, створюючи обробник виключень, який ігнорує помилку створення об'єкта. Створіть код PL / SQL, який буде обробляти помилку і присвоїти йому статус "NULL":
DECLARE MyNamedTableExists ВИКЛЮЧЕННЯ; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'створити табличну таблицю (номер col1)'; BEGIN / виконати негайну sql_stmt; / Створити таблицю MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ігнорувати помилки ORA-955, якщо назва таблиці вже існує) / EXCEPTION, коли MyNamedTableExists потім NULL; END;