Що таке код Oracle SQL 955?

Автор: Morris Wright
Дата Створення: 28 Квітень 2021
Дата Оновлення: 1 Липня 2024
Anonim
Що таке код Oracle SQL 955? - Статті
Що таке код Oracle SQL 955? - Статті

Зміст

Помилка 955 Oracle PL / SQL, більш відома як ORA-00955, виникає, коли користувач створює об'єкт у базі даних з іменем, який використовується вже існуючим об'єктом, таким як таблиця, перегляд, індекс, синонім або група. Даючи об'єкту інша назва вирішує помилку.


ORA-00955 - це помилка виключення, яка виникає з іменем, вже призначеним іншому об'єкту (Джастін Салліван / Getty Images / Getty Images)

Повідомлення про помилку

Користувач створює об'єкт на командному рядку 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;