? Código de erro Oracle PL /SQL 955 , também conhecido como o erro ORA- 00955 , ocorre quando um usuário cria um objeto no banco de dados com um nome já em uso por um objeto existente , como uma mesa , visão, índice sinônimo ou cluster. Dando o objeto um nome alternativo geralmente resolve o erro. Exibir mensagem
Um usuário cria um objeto na linha de comando do Oracle PL /SQL com um determinado nome e vê a mensagem " ORA- 00955 nome já é usado por um objeto existente " exibido na tela .
Causas
A mensagem de erro pode ocorrer quando um usuário instala uma atualização , corre um script de Oracle PL /SQL que cai ou cria tabelas ou índices ou usa uma reservados palavra para um objeto definido pelo sistema. Normalmente, o usuário terá tentou criar um objeto com um nome já atribuído a um objeto existente no banco de dados .
Solução
usuários são aconselhados a selecionar outro nome ou o objeto ou para modificar e renomear um objeto existente para permitir o uso do nome pretendido. Consultar os DBA_OBJECTS tabela de sistema ou USER_OBJECTS para confirmar se outro usuário tem o nome em uso
Verifique também apelido e sinônimos públicos para o nome existente, utilizando as seguintes instruções : .
SELECT * FROM ALL_OBJECTSWHERE ObjectName = "Nome" ;
a tabela ALL_OBJECTS contém a lista de todos os objetos acessíveis ao usuário disponíveis para o específico log -in ID . Para reutilizar um nome, soltar todos os objetos indesejados com o mesmo nome.
Ignorar o erro usando um manipulador de exceção
Os usuários podem ignorar ORA- 00955 , criando um manipulador de exceção que ignora o erro de criação do objeto . Crie um pedaço de código PL /SQL que retém o erro e atribui o erro de um estatuto "NULL" :
DECLAREMyNamedTableExists exceção; pragma exception_init ( MyNamedTableExists , -955 ); sql_stmt varchar2 (50) : = ' criar tempstore mesa (número col1 ) '; BEGIN /* executar sql_stmt imediata; * /CRIAR MyNamedTableExists tABELA ASSeleccione * FROM MySupposedTable ;/* + Ignorar ORA- 955 erros se o nome da tabela já existe ) * /exceção quando MyNamedTableExists então NULL; END;