Hvad er Oracle SQL Code 955?

Forfatter: Morris Wright
Oprettelsesdato: 21 April 2021
Opdateringsdato: 21 Juni 2024
Anonim
Hvad er Oracle SQL Code 955? - Artikler
Hvad er Oracle SQL Code 955? - Artikler

Indhold

Oracle PL / SQL-fejl 955, bedre kendt som ORA-00955, opstår, når en bruger opretter et objekt i databasen med et navn, der bruges af et allerede eksisterende objekt, såsom en tabel, visning, indeks, synonym eller gruppe. At give objektet et andet navn løser fejlen.


ORA-00955 er en undtagelsesfejl, der opstår med et navn, der allerede er tildelt til et andet objekt (Justin Sullivan / Getty Images / Getty Images)

Fejlmeddelelse

En bruger opretter et objekt på Oracle PL / SQL kommandolinjen med et bestemt navn og modtager meddelelsen "ORA-00955 navn er allerede brugt af et eksisterende objekt".

årsager

Fejlmeddelelsen kan opstå, når en bruger installerer en opdatering, kører et script i Oracle PL / SQL, der sletter eller opretter tabeller eller indekser, eller bruger et ord forbeholdt en systemdefineret objekt. Generelt vil brugeren forsøge at oprette et objekt med det navn, der allerede er tildelt til et andet objekt i databasen.

opløsning

Brugere rådes til at vælge et andet navn eller objekt eller ændre og omdøbe et eksisterende objekt for at tillade brug af det ønskede navn. Se DBA_OBJECTS eller USER_OBJECTS for at bekræfte, om en anden bruger har navnet i brug.


Kontroller også kælenavne og offentlige synonymer for det eksisterende navn ved hjælp af følgende sætning:

VÆLG * FRA ALL_OBJECTS WHERE ObjectName = "NAME";

Table ALL_OBJECTS indeholder listen over alle tilgængelige tilgængelige objekter, der er tilgængelige for det specifikke login-id. For at genbruge et navn skal du slette alle uønskede objekter med samme navn.

Ignorerer fejlen ved hjælp af undtagelseshåndtering

Brugere kan omgå ORA-00955 ved at oprette en undtagelseshåndterer, der ignorerer objektets oprettelsesfejl. Opret en PL / SQL kode, der håndterer fejlen og tildele "NULL" til sin status:

DECLARE MyNamedTableExists EXCEPTION; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'Opret tabel tempstore (col1 nummer)'; BEGIN / udfør øjeblikkelig sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * FRA MySupposedTable; /+ Ignorer ORA-955-fejl, hvis tabelnavnet allerede eksisterer) / Undtagelse når MyNamedTableExists derefter NULL; SLUT;