Co to jest Oracle SQL Code 955?

Autor: Morris Wright
Data Utworzenia: 25 Kwiecień 2021
Data Aktualizacji: 16 Móc 2024
Anonim
NoSQL w praktyce - czym jest i jak tworzyć aplikacje
Wideo: NoSQL w praktyce - czym jest i jak tworzyć aplikacje

Zawartość

Błąd Oracle PL / SQL 955, lepiej znany jako ORA-00955, występuje, gdy użytkownik tworzy obiekt w bazie danych z nazwą używaną przez już istniejący obiekt, taki jak tabela, widok, indeks, synonim lub grupa. Nadanie obiektowi innej nazwy rozwiązuje błąd.


ORA-00955 jest błędem wyjątku występującym przy nazwie już przypisanej do innego obiektu (Justin Sullivan / Getty Images / Getty Images)

Komunikat o błędzie

Użytkownik tworzy obiekt w wierszu komend Oracle PL / SQL o określonej nazwie i odbiera komunikat „Nazwa ORA-00955 jest już używana przez istniejący obiekt”.

Przyczyny

Komunikat o błędzie może wystąpić, gdy użytkownik instaluje aktualizację, uruchamia skrypt w Oracle PL / SQL, który usuwa lub tworzy tabele lub indeksy, lub używa słowa zarezerwowanego dla obiektu zdefiniowanego przez system. Zasadniczo użytkownik będzie próbował utworzyć obiekt o nazwie już przypisanej do innego obiektu w bazie danych.

Rozwiązanie

Użytkownikom zaleca się wybranie innej nazwy lub obiektu albo zmodyfikowanie i zmianę nazwy istniejącego obiektu, aby umożliwić użycie żądanej nazwy. Zobacz DBA_OBJECTS lub USER_OBJECTS, aby potwierdzić, czy inny użytkownik ma używaną nazwę.


Sprawdź także pseudonimy i publiczne synonimy dla istniejącej nazwy, używając następującej instrukcji:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Tabela ALL_OBJECTS zawiera listę wszystkich dostępnych dla użytkownika obiektów dostępnych dla określonego identyfikatora logowania. Aby ponownie użyć nazwy, usuń wszystkie niechciane obiekty o tej samej nazwie.

Ignorowanie błędu za pomocą obsługi wyjątków

Użytkownicy mogą ominąć ORA-00955, tworząc program obsługi wyjątków, który ignoruje błąd tworzenia obiektu. Utwórz kod PL / SQL, który obsłuży błąd i przypisz „NULL” do jego stanu:

DECLARE MyNamedTableExists WYJĄTEK; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'utwórz tabelę tempstore (numer col1)'; BEGIN / wykonaj natychmiastowy sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignoruj ​​błędy ORA-955, jeśli nazwa tabeli już istnieje) / WYJĄTEK, gdy MyNamedTableExists następnie NULL; END;