Sisu
Oracle PL / SQL viga 955, mida tuntakse paremini kui ORA-00955, tekib siis, kui kasutaja loob andmebaasis objekti juba olemasoleva objekti, näiteks tabeli, vaate, indeksi, sünonüümi või rühma kasutatava nimega. Objektile teise nime andmine lahendab vea.
ORA-00955 on erandviga, mis tekib teise objektile juba määratud nime puhul (Justin Sullivan / Getty Images / Getty Images)
Veateade
Kasutaja loob konkreetse nimega Oracle PL / SQL-i käsureal objekti ja saab sõnumi "ORA-00955 nimi on juba olemasoleva objekti poolt kasutusel".
Põhjused
Veateade võib ilmneda, kui kasutaja installib värskenduse, käivitab Oracle PL / SQL-i skripti, mis kustutab või loob tabeleid või indekseid, või kasutab sõna, mis on reserveeritud süsteemi poolt määratletud objektile. Üldiselt üritab kasutaja luua objekti, mille nimi on juba andmebaasi teisele objektile määratud.
Lahendus
Kasutajal soovitatakse valida teine nimi või objekt või muuta ja ümber nimetada olemasolev objekt, et võimaldada soovitud nime kasutamist. Vaadake DBA_OBJECTS või USER_OBJECTS, et kinnitada, kas mõnel teisel kasutajal on kasutatav nimi.
Kontrollige ka olemasoleva nime hüüdnimesid ja avalikke sünonüüme, kasutades järgmist avaldust:
SELECT * FROM ALL_OBJECTS WHERE ObjectName = "NAME";
Tabel ALL_OBJECTS sisaldab kõigi kasutajale ligipääsetavate objektide loendit, mis on saadaval konkreetse sisselogimise ID jaoks. Nime taastamiseks kustutage kõik sama nimega soovimatud objektid.
Eiramisjuhtimisega seotud vea ignoreerimine
Kasutajad saavad ORA-00955-st mööda minna, luues erandikäsitleja, mis ignoreerib objekti loomise viga. Looge PL / SQL-kood, mis hakkab vea käitlema, ja määrake oma olekule "NULL":
DECLARE MyNamedTableExists EXCEPTION; pragma outstanding_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'luua tabeli tempstore (col1 number)'; BEGIN / käivitage sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ Ignoreerige ORA-955 vigu, kui tabeli nimi on juba olemas / EXCEPTION, kui MyNamedTableExists siis NULL; END;