Kaj je Oracle SQL Code 955?

Avtor: Morris Wright
Datum Ustvarjanja: 2 April 2021
Datum Posodobitve: 18 November 2024
Anonim
Access 2019 Full Tutorial: Microsoft Access Made Easy
Video.: Access 2019 Full Tutorial: Microsoft Access Made Easy

Vsebina

Napaka Oracle PL / SQL 955, bolj znana kot ORA-00955, nastane, ko uporabnik ustvari objekt v bazi podatkov z imenom, ki ga uporablja že obstoječi objekt, kot so tabela, pogled, indeks, sopomenka ali skupina. Če predmet dodelite drugemu imenu, se napaka razreši.


ORA-00955 je izredna napaka, ki se pojavi z že dodeljenim imenom drugega objekta (Justin Sullivan / Getty Images / Getty Images)

Sporočilo o napaki

Uporabnik ustvari objekt v ukazni vrstici Oracle PL / SQL z določenim imenom in prejme sporočilo "ime ORA-00955 že uporablja obstoječi objekt".

Vzroki

Sporočilo o napaki se lahko pojavi, ko uporabnik namesti posodobitev, zažene skript v Oracle PL / SQL, ki izbriše ali ustvari tabele ali indekse, ali uporablja besedo, rezervirano za sistemsko definiran objekt. Na splošno bo uporabnik skušal ustvariti objekt z imenom, ki je že dodeljeno drugemu objektu v bazi podatkov.

Rešitev

Uporabnikom svetujemo, da izberejo drugo ime ali predmet ali spremenijo in preimenujejo obstoječi objekt, da omogočijo uporabo želenega imena. Glejte DBA_OBJECTS ali USER_OBJECTS, da potrdite, ali ima kateri koli drug uporabnik ime, ki ga uporabljate.


Preverite tudi vzdevke in javne sopomenke za obstoječe ime z naslednjo izjavo:

SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";

Tabela ALL_OBJECTS vsebuje seznam vseh dostopnih objektov, ki so na voljo za določen ID prijave. Če želite znova uporabiti ime, izbrišite vse neželene predmete z istim imenom.

Neupoštevanje napake z uporabo obdelave izjem

Uporabniki lahko obidejo ORA-00955, tako da ustvarijo obdelovalec izjem, ki prezre napako pri ustvarjanju objekta. Ustvarite kodo PL / SQL, ki bo obravnavala napako in dodelila statusu "NULL":

IZJAVI MyNamedTableExists IZJEMANJE; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'ustvarite tabelo tempstore (število col1)'; BEGIN / izvrši takojšnjo sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Zanemari napake ORA-955, če ime tabele že obstaja / IZJEMA, ko MyNamedTableExists potem NULL; END;