Čo je to Oracle SQL Code 955?

Autor: Charles Brown
Dátum Stvorenia: 4 Február 2021
Dátum Aktualizácie: 3 V Júli 2024
Anonim
Accounts Receivable and Accounts Payable
Video: Accounts Receivable and Accounts Payable

Obsah

Chyba Oracle PL / SQL 955, známejšia ako ORA-00955, nastane, keď používateľ vytvorí objekt v databáze s názvom, ktorý používa už existujúci objekt, napríklad tabuľka, pohľad, index, synonymum alebo skupina. Odovzdanie objektu inému názvu rieši chybu.


ORA-00955 je chyba výnimky, ktorá sa vyskytuje pri názve, ktorý už bol priradený inému objektu (Justin Sullivan / Getty Images / Getty Images)

Chybové hlásenie

Používateľ vytvorí objekt na príkazovom riadku Oracle PL / SQL s určitým názvom a prijme správu "Názov ORA-00955 je už používaný existujúcim objektom".

príčiny

Chybové hlásenie sa môže vyskytnúť, keď používateľ nainštaluje aktualizáciu, spustí skript v systéme Oracle PL / SQL, ktorý vymaže alebo vytvorí tabuľky alebo indexy, alebo použije slovo vyhradené pre systémovo definovaný objekt. Vo všeobecnosti sa užívateľ pokúsi vytvoriť objekt s menom, ktoré už bolo priradené inému objektu v databáze.


riešenie

Používateľom sa odporúča, aby si vybrali iný názov alebo objekt alebo upravili a premenovali existujúci objekt, aby umožnili použitie požadovaného mena. Pozrite si DBA_OBJECTS alebo USER_OBJECTS, aby ste potvrdili, či má iný užívateľ používaný názov.

Skontrolujte aj prezývky a verejné synonymá pre existujúci názov pomocou nasledujúceho vyhlásenia:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Tabuľka ALL_OBJECTS obsahuje zoznam všetkých objektov, ktoré sú dostupné pre špecifické prihlasovacie ID. Ak chcete meno znova použiť, vymažte všetky nechcené objekty s rovnakým názvom.

Ignorovanie chyby pomocou spracovania výnimiek

Používatelia môžu obísť ORA-00955 vytvorením obsluhy výnimiek, ktorá ignoruje chybu pri vytváraní objektu. Vytvorte kód PL / SQL, ktorý bude spracovávať chybu a priradíte jej stav: NULL:


DECLARE MyNamedTableExists VÝNIMKA; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'vytvoriť tabuľku tempstore (číslo col1)'; ZAČNÚ / vykonať okamžité sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignorovať chyby ORA-955, ak názov tabuľky už existuje) / VÝNIMKA, keď MyNamedTableExists potom NULL; END;