Ce este Oracle SQL Code 955?

Autor: Frank Hunt
Data Creației: 16 Martie 2021
Data Actualizării: 23 Noiembrie 2024
Anonim
SQL Tutorial - Full Database Course for Beginners
Video: SQL Tutorial - Full Database Course for Beginners

Conţinut

Eroarea 955 Oracle PL / SQL, cunoscută mai ales ca ORA-00955, apare când un utilizator creează un obiect în baza de date cu un nume utilizat de către un obiect deja existent, cum ar fi un tabel, o vizualizare, un index, un sinonim sau un grup. Oferirea obiectului unui nume diferit rezolvă eroarea.


ORA-00955 este o eroare de excepție care apare cu un nume deja atribuit unui alt obiect (Justin Sullivan / Getty Images / Getty Images)

Mesaj de eroare

Un utilizator creează un obiect pe linia de comandă Oracle PL / SQL cu un anumit nume și primește mesajul "Numele ORA-00955 este deja utilizat de un obiect existent".

cauze

Mesajul de eroare poate apărea atunci când un utilizator instalează o actualizare, execută un script în Oracle PL / SQL care șterge sau creează tabele sau indexuri sau utilizează un cuvânt rezervat pentru un obiect definit de sistem. În general, utilizatorul va încerca să creeze un obiect cu numele deja atribuit unui alt obiect din baza de date.

soluție

Se recomandă utilizatorilor să selecteze un alt nume sau un obiect sau să modifice și să redenumească un obiect existent pentru a permite utilizarea numelui dorit. Consultați DBA_OBJECTS sau USER_OBJECTS pentru a confirma dacă orice alt utilizator are numele utilizat.


Verificați, de asemenea, poreclele și sinonimele publice pentru numele existent, utilizând următoarea instrucțiune:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Tabelul ALL_OBJECTS conține lista tuturor obiectelor accesibile utilizatorilor disponibile pentru ID-ul de conectare specific. Pentru a reutiliza un nume, ștergeți toate obiectele nedorite cu același nume.

Ignorarea erorii prin manipularea excepțiilor

Utilizatorii pot ocoli ORA-00955 prin crearea unui handler de excepții care ignoră eroarea de creare a obiectului. Creați un cod PL / SQL care va gestiona eroarea și va atribui statusul "NULL":

DECLARE MyNamedTableExists EXCEPTION; pragma excepție_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'Crearea tempstorei tabelului (numărul col1)'; BEGIN / executați sql_stmt imediat; / CREATE TABLE MyNamedTableExists ca SELECT * FROM MySupposedTable; /+ Ignoră erorile ORA-955 dacă numele tabelului există deja) / EXCEPȚIE atunci când MyNamedTableExists apoi NULL; END;