Co je to Oracle SQL Code 955?

Autor: Charles Brown
Datum Vytvoření: 3 Únor 2021
Datum Aktualizace: 22 Listopad 2024
Anonim
Accounts Receivable and Accounts Payable
Video: Accounts Receivable and Accounts Payable

Obsah

Chyba 955 Oracle PL / SQL, známější jako ORA-00955, nastane, když uživatel vytvoří objekt v databázi s názvem používaným již existujícím objektem, například tabulkou, pohledem, indexem, synonymem nebo skupinou. Chybějící objekt vyřeší jiný název.


ORA-00955 je chyba výjimky, ke které dochází s názvem již přiřazeným jinému objektu (Justin Sullivan / Getty Images / Getty Images)

Chybová zpráva

Uživatel vytvoří objekt na příkazovém řádku Oracle PL / SQL s určitým názvem a přijme zprávu "Název ORA-00955 je již používán existujícím objektem".

Příčiny

Chybová zpráva může nastat, když uživatel nainstaluje aktualizaci, spustí skript v Oracle PL / SQL, který vymaže nebo vytvoří tabulky nebo indexy, nebo použije slovo vyhrazené pro objekt definovaný systémem. Obecně se uživatel pokusí vytvořit objekt s názvem, který je již přiřazen jinému objektu v databázi.

Řešení

Uživatelům se doporučuje, aby si vybrali jiný název nebo objekt nebo upravili a přejmenovali existující objekt, aby umožnili použití požadovaného jména. Viz DBA_OBJECTS nebo USER_OBJECTS, abyste potvrdili, zda má jiný uživatel jméno.


Zkontrolujte také přezdívky a veřejná synonyma existujícího názvu pomocí následujícího příkazu:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Tabulka ALL_OBJECTS obsahuje seznam všech objektů přístupných uživateli pro konkrétní přihlašovací ID. Chcete-li znovu použít název, odstraňte všechny nechtěné objekty se stejným názvem.

Ignorování chyby pomocí zpracování výjimek

Uživatelé mohou obejít ORA-00955 vytvořením obsluhy výjimek, která ignoruje chybu při vytváření objektu. Vytvořte kód PL / SQL, který bude s chybou pracovat a přiřadíte stav „NULL“:

DECLARE MyNamedTableExists VÝJIMKA; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'vytvořit tabulku tempstore (číslo col1)'; ZAČÁTEK / spustit okamžitý sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignorovat chyby ORA-955, pokud název tabulky již existuje) / EXCEPTION, když MyNamedTableExists pak NULL; KONEC;