Che cos'è Oracle SQL Code 955?

Autore: Frank Hunt
Data Della Creazione: 16 Marzo 2021
Data Di Aggiornamento: 15 Maggio 2024
Anonim
Che cos'è Oracle SQL Code 955? - Articoli
Che cos'è Oracle SQL Code 955? - Articoli

Contenuto

L'errore Oracle PL / SQL 955, meglio noto come ORA-00955, si verifica quando un utente crea un oggetto nel database con un nome in uso da un oggetto già esistente, ad esempio una tabella, una vista, un indice, un sinonimo o un gruppo. Dare all'oggetto un nome diverso risolve l'errore.


ORA-00955 è un errore di eccezione che si verifica con un nome già assegnato a un altro oggetto (Justin Sullivan / Getty Images / Getty Images)

Messaggio di errore

Un utente crea un oggetto sulla linea di comando Oracle PL / SQL con un determinato nome e riceve il messaggio "Il nome ORA-00955 è già in uso da un oggetto esistente".

cause

Il messaggio di errore può verificarsi quando un utente installa un aggiornamento, esegue uno script in Oracle PL / SQL che cancella o crea tabelle o indici o utilizza una parola riservata per un oggetto definito dal sistema. Generalmente, l'utente tenterà di creare un oggetto con il nome già assegnato a un altro oggetto nel database.

soluzione

Gli utenti sono invitati a selezionare un altro nome o oggetto, oppure modificare e rinominare un oggetto esistente per consentire l'uso del nome desiderato. Vedi DBA_OBJECTS o USER_OBJECTS per confermare se un altro utente ha il nome in uso.


Controlla anche nickname e sinonimi pubblici per il nome esistente, usando la seguente dichiarazione:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

La tabella ALL_OBJECTS contiene l'elenco di tutti gli oggetti accessibili all'utente disponibili per l'ID di accesso specifico. Per riutilizzare un nome, elimina tutti gli oggetti indesiderati con lo stesso nome.

Ignorando l'errore usando la gestione delle eccezioni

Gli utenti possono bypassare ORA-00955 creando un gestore di eccezioni che ignori l'errore di creazione dell'oggetto. Creare un codice PL / SQL che gestirà l'errore e assegnare "NULL" al suo stato:

DECLARE MyNamedTableExists ECCEZIONE; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'create table tempstore (col1 number)'; INIZIA / eseguire sql_stmt immediato; / CREATE TABLE MyNamedTableExists COME SELEZIONA * FROM MySupposedTable; /+ Ignora gli errori ORA-955 se il nome della tabella esiste già) / ECCEZIONE quando MyNamedTableExists è NULL; END;