¿Qué es Oracle SQL Code 955?

Autor: Charles Brown
Fecha De Creación: 8 Febrero 2021
Fecha De Actualización: 8 Enero 2025
Anonim
¿Qué es Oracle SQL Code 955? - Artículos
¿Qué es Oracle SQL Code 955? - Artículos

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;