Contenido
El error 955 de Oracle PL / SQL, más conocido como ORA-00955, se produce cuando un usuario crea un objeto en la base de datos con un nombre en uso por algún objeto ya existente, como una tabla, visualización, índice, sinónimo o grupo. Dar al objeto un nombre diferente resuelve el error.
ORA-00955 es un error de excepción que se produce con un nombre ya asignado a otro objeto (Justin Sullivan / Getty Images News / Getty Images)
Mensaje de error
Un usuario crea un objeto en la línea de comandos de Oracle PL / SQL con un cierto nombre y recibe el mensaje "ORA-00955 nombre ya está en uso por un objeto existente".
causas
El mensaje de error puede ocurrir cuando un usuario instala una actualización, ejecuta una secuencia de comandos en Oracle PL / SQL que borra o crea tablas o índices, o utiliza una palabra reservada para un objeto definido por el sistema. Generalmente, el usuario intentará crear un objeto con el nombre ya asignado a otro objeto existente en la base de datos.
solución
Se aconseja a los usuarios seleccionar otro nombre u objeto, o modificar y cambiar el nombre de un objeto existente para permitir el uso del nombre deseado. Consulte DBA_OBJECTS o USER_OBJECTS para confirmar si algún otro usuario tiene el nombre en uso.
Cheque también alias y sinónimos públicos para el nombre existente, usando la siguiente declaración:
SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";
La tabla ALL_OBJECTS contiene la lista de todos los objetos accesibles al usuario disponibles para el registro de identificación específico. Para reutilizar un nombre, borre todos los objetos no deseados con el mismo nombre.
Ignorar el error mediante el tratamiento de excepciones
Los usuarios pueden omitir el ORA-00955 creando un controlador de excepción que ignora el error de creación del objeto. Cree un código en PL / SQL que tratará el error y asignará "NULL" a su estado:
DECLARE MyNamedTableExists EXCEPTION; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'create table tempstore (col1 number)'; BEGIN / ejecute SQL sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignore ORA-955 errors si la tabla de nombres ya existe) / EXCEPTION cuando MyNamedTableExists entonces NULL; FIN;