? 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 mesa , vista , índice, sinónimo o clúster. Dando al objeto un nombre alternativo generalmente se resuelve el error. Mensaje de la pantalla
Un usuario crea un objeto en la línea de comandos de Oracle PL /SQL con un cierto nombre y ve el mensaje " ORA- 00955 nombre ya está en uso por un objeto existente" en la pantalla .
Causas
El mensaje de error puede ocurrir 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 reservada palabra de 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
Los usuarios se les recomienda seleccionar otro nombre o el objeto o para modificar y cambiar el nombre de un objeto existente para permitir el uso del nombre previsto . Consultar los dba_objects tabla del sistema o user_objects para confirmar si otro usuario tiene el nombre en uso
Compruebe también alias y sinónimos públicos para el nombre actual , utilizando las siguientes frases : .
SELECT * FROM ALL_OBJECTSWHERE ObjectName = " NOMBRE " ;
ALL_OBJECTS la tabla contiene la lista de todos los objetos que puede acceder el usuario para el inicio de sesión específica de identificación. Para volver a utilizar el nombre , retire todos los objetos no deseados con el mismo nombre.
Omitir el error mediante una excepción Handler
Los usuarios pueden pasar por alto ORA- 00955 mediante la creación de un manejador de excepciones que pasa por alto el error de creación de objetos. Crear un fragmento de código PL /SQL que atrapa el error y asigna el error de estado " NULL" :
DECLAREMyNamedTableExists EXCEPCIÓN ; exception_init pragma ( MyNamedTableExists , -955 ) ; SQL_stmt varchar2 ( 50 ) : = ' crear mesa tempstore ( col1 número) ' ; COMENZAR /* ejecutar SQL_stmt inmediata ; * /CREATE TABLE MyNamedTableExists ASSELECT * FROM MySupposedTable ;/* + Ignorar ORA - 955 errores si ya existe el nombre de la tabla ) * /excepción cuando MyNamedTableExists luego NULL ; fin;