? Oracle PL /SQL-Fehlercode 955 , der auch als ORA- 00955 Fehler bekannt , tritt auf, wenn ein Benutzer ein Objekt in der Datenbank mit einem Namen bereits von einem vorhandenen Objekt wie einen Tisch , Ansicht , Index , Synonym oder Cluster. Giving das Objekt einen alternativen Namen in der Regel löst den Fehler . Display-Meldung
Ein Benutzer erstellt ein Objekt auf der Oracle PL /SQL-Befehlszeile mit einem bestimmten Namen und sieht die Meldung auf dem Bildschirm angezeigt " ORA- 00955 Name bereits von einem vorhandenen Objekt verwendet " .
Verursacht
Die Fehlermeldung kann auftreten, wenn ein Benutzer ein Update installiert , läuft eine Oracle PL /SQL-Skript, oder fällt schafft Tabellen oder Indizes oder nutzt einen reservierten Wort für ein System definierte Aufgabe . In der Regel wird der Benutzer versucht, ein Objekt mit einem Namen bereits auf ein bestehendes Objekt in der Datenbank zugeordnet zu schaffen.
Lösung
Benutzer werden empfohlen wählen Sie einen anderen Namen oder das Objekt oder zu ändern und umbenennen ein bestehendes Objekt , um die Verwendung der vorgesehenen Namen erlauben . Abfragen der Systemtabelle DBA_OBJECTS oder USER_OBJECTS zu bestätigen, ob ein anderer Benutzer den Namen in Gebrauch hat
Überprüfen Sie auch Alias und öffentliche Synonyme für den bestehenden Namen mit den folgenden Aussagen : .
SELECT * FROM ALL_OBJECTSWHERE ObjectName = "NAME" ;
ALL_OBJECTS Tabelle enthält die Liste aller Benutzer zugänglichen Objekte für die spezifischen log - in ID . Um einen Namen wiederverwenden , fallen alle unerwünschten Objekte mit dem gleichen Namen.
Umgehen Sie den Fehler mit einer Exception Handler
Benutzer können ORA- 00955 durch die Schaffung eines Exception-Handler umgehen das ignoriert die Objekt-Erstellung Fehler. Erstellen Sie ein Stück von PL /SQL-Code , die Fallen der Fehler und ordnet die Fehler ein "NULL" Status :
DECLAREMyNamedTableExists AUSNAHME ; pragma EXCEPTION_INIT ( MyNamedTableExists , -955 ); sql_stmt varchar2 (50) : = ' erstellen Tabelle tempstore ( col1 Zahl ) '; BEGIN /* ausführen sofortige sql_stmt ; * /CREATE TABLE MyNamedTableExists ASSELECT * FROM MySupposedTable ;/* + ignorieren ORA- 955 Fehler , wenn der Name der Tabelle bereits vorhanden ) * /Ausnahme, wenn MyNamedTableExists dann NULL; END;