Что такое Oracle SQL Code 955?

Автор: Morris Wright
Дата создания: 26 Апрель 2021
Дата обновления: 16 Май 2024
Anonim
JOINS in Oracle | Oracle SQL Tutorial Videos | Mr.Vijay Kumar
Видео: JOINS in Oracle | Oracle SQL Tutorial Videos | Mr.Vijay Kumar

Содержание

Ошибка Oracle PL / SQL 955, более известная как ORA-00955, возникает, когда пользователь создает объект в базе данных с именем, используемым уже существующим объектом, таким как таблица, представление, индекс, синоним или группа. Присвоение объекту другого имени устраняет ошибку.


ORA-00955 - ошибка исключения, которая возникает с именем, уже назначенным другому объекту (Джастин Салливан / Getty Images / Getty Images)

Сообщение об ошибке

Пользователь создает объект в командной строке Oracle PL / SQL с определенным именем и получает сообщение «Имя ORA-00955 уже используется существующим объектом».

причины

Сообщение об ошибке может появляться, когда пользователь устанавливает обновление, запускает сценарий в Oracle PL / SQL, который стирает или создает таблицы или индексы, или использует слово, зарезервированное для определенного системой объекта. Обычно пользователь пытается создать объект с именем, уже назначенным другому объекту в базе данных.

решение

Пользователям рекомендуется выбрать другое имя или объект или изменить и переименовать существующий объект, чтобы разрешить использование нужного имени. Посмотрите DBA_OBJECTS или USER_OBJECTS, чтобы подтвердить, если какой-либо другой пользователь использует имя в использовании.


Также проверьте псевдонимы и общедоступные синонимы для существующего имени, используя следующую инструкцию:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Таблица ALL_OBJECTS содержит список всех доступных пользователю объектов, доступных для определенного идентификатора входа. Чтобы повторно использовать имя, удалите все ненужные объекты с тем же именем.

Игнорирование ошибки с использованием обработки исключений

Пользователи могут обойти ORA-00955, создав обработчик исключений, который игнорирует ошибку создания объекта. Создайте код PL / SQL, который будет обрабатывать ошибку, и присвойте ей значение NULL:

ОБЪЯВИТЬ MyNamedTableExists ИСКЛЮЧЕНИЕ; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'создать таблицу tempstore (номер col1)'; НАЧАЛО / выполнить немедленно sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySuppposedTable; /+ Игнорировать ошибки ORA-955, если имя таблицы уже существует) / ИСКЛЮЧЕНИЕ, когда MyNamedTableExists затем NULL; END;