Inhalt
Der Oracle PL / SQL-Fehler 955, besser bekannt als ORA-00955, tritt auf, wenn ein Benutzer ein Objekt in der Datenbank mit einem Namen erstellt, der von einem bereits vorhandenen Objekt verwendet wird, z. B. einer Tabelle, einer Ansicht, einem Index, einem Synonym oder einer Gruppe. Wenn Sie dem Objekt einen anderen Namen geben, wird der Fehler behoben.
ORA-00955 ist ein Ausnahmefehler, bei dem ein Name bereits einem anderen Objekt zugewiesen ist (Justin Sullivan / Getty Images / Getty Images)
Fehlermeldung
Ein Benutzer erstellt ein Objekt in der Oracle PL / SQL-Befehlszeile mit einem bestimmten Namen und erhält die Meldung "ORA-00955-Name wird bereits von einem vorhandenen Objekt verwendet".
Ursachen
Die Fehlermeldung kann auftreten, wenn ein Benutzer ein Update installiert, ein Skript in Oracle PL / SQL ausführt, das Tabellen oder Indizes löscht oder erstellt oder ein Wort verwendet, das für ein systemdefiniertes Objekt reserviert ist. Im Allgemeinen versucht der Benutzer, ein Objekt zu erstellen, dessen Name bereits einem anderen Objekt in der Datenbank zugewiesen ist.
Lösung
Benutzern wird empfohlen, einen anderen Namen oder ein anderes Objekt auszuwählen oder ein vorhandenes Objekt zu ändern und umzubenennen, um die Verwendung des gewünschten Namens zu ermöglichen. Siehe DBA_OBJECTS oder USER_OBJECTS, um zu überprüfen, ob ein anderer Benutzer den Namen verwendet.
Überprüfen Sie auch die Kurznamen und öffentlichen Synonyme für den vorhandenen Namen. Verwenden Sie dazu die folgende Anweisung:
SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";
Die ALL_OBJECTS-Tabelle enthält die Liste aller für den Benutzer verfügbaren Objekte, die für die bestimmte Anmelde-ID verfügbar sind. Um einen Namen wiederzuverwenden, löschen Sie alle unerwünschten Objekte mit demselben Namen.
Fehler mit Ausnahmebehandlung ignorieren
Benutzer können den ORA-00955 umgehen, indem sie einen Ausnahmehandler erstellen, der den Objekterstellungsfehler ignoriert. Erstellen Sie einen PL / SQL-Code, der den Fehler behandelt, und weisen Sie dem Status "NULL" zu:
DECLARE MyNamedTableExists EXCEPTION; Pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'Table Tempstore (Col1-Nummer) erstellen'; BEGINN sofortiges sql_stmt ausführen; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignoriere ORA-955-Fehler, wenn der Tabellenname bereits existiert.) / EXCEPTION wenn MyNamedTableExists dann NULL ist; ENDE;