Tecnología

Inicio

¿Qué es el Código de Oracle SQL 955?

¿Qué es el Código de Oracle SQL 955?


Oracle PL / SQL de código de error 955, también conocido como el error ORA-00955, se produce cuando un usuario crea un objeto en la base de datos con un nombre ya está en uso por un objeto existente, como una tabla, vista, índice, sinónimo o clúster. Dando al objeto un nombre alternativo generalmente se resuelve el error.

pantalla de mensajes

Un usuario crea un objeto en la línea de comandos de Oracle PL / SQL con un cierto nombre y ve el mensaje "nombre ORA-00955 ya es utilizada por un objeto existente" que aparece en la pantalla.

causas

se puede producir el mensaje de error cuando un usuario instala una actualización, se ejecuta un script de Oracle PL / SQL que cae o crea tablas o índices o usa una palabra reservada para un objeto definido por el sistema. Por lo general, el usuario ha intentado crear un objeto con un nombre ya asignado a un objeto existente en la base de datos.

Solución

Se aconseja a los usuarios para seleccionar otro nombre o el objeto o para modificar y cambiar el nombre de un objeto existente para permitir el uso del nombre deseado. Consultar las tablas del sistema o DBA_OBJECTS USER_OBJECTS para confirmar si otro usuario tiene el nombre en uso.

También puedes ver el alias y sinónimos públicos para el nombre existente, utilizando las siguientes afirmaciones:

SELECT *
DE ALL_OBJECTS
DONDE ObjectName = "nombre";

La tabla ALL_OBJECTS contiene la lista de todos los objetos accesibles para el usuario disponible para el inicio de sesión ID específico. Para volver a utilizar un nombre, retirar todos los objetos no deseados con el mismo nombre.

Pasar por alto el error que utiliza un controlador de excepciones

Los usuarios pueden pasar por alto ORA-00955 mediante la creación de un manejador de excepciones que ignora el error de creación de objetos. Crear una pieza de código PL / SQL que intercepta el error y asigna el error de estado "NULO":

DECLARAR
MyNamedTableExists EXCEPCIÓN;
pragma exception_init (MyNamedTableExists, -955);
varchar2 SQL_stmt (50): = 'crear tempstore mesa (número col1)';
EMPEZAR
/ Ejecución inmediata SQL_stmt; /
CREAR MyNamedTableExists tabla como
SELECT FROM MySupposedTable;
/ + Ignorar errores ORA-955 si el nombre de la tabla ya existe) * /
Excepción cuando MyNamedTableExists un valor nulo;
FIN;