Innhold
Oracle PL / SQL-feil 955, bedre kjent som ORA-00955, oppstår når en bruker lager et objekt i databasen med et navn som brukes av et allerede eksisterende objekt, for eksempel en tabell, visning, indeks, synonym eller gruppe. Å gi objektet et annet navn løser feilen.
ORA-00955 er en unntaksfeil som oppstår med et navn som allerede er tilordnet et annet objekt (Justin Sullivan / Getty Images / Getty Images)
Feilmelding
En bruker lager et objekt på Oracle PL / SQL kommandolinjen med et bestemt navn og mottar meldingen "ORA-00955 navn er allerede i bruk av et eksisterende objekt".
årsaker
Feilmeldingen kan oppstå når en bruker installerer en oppdatering, kjører et skript i Oracle PL / SQL som sletter eller oppretter tabeller eller indekser, eller bruker et ord reservert for et systemdefinert objekt. Vanligvis vil brukeren forsøke å opprette et objekt med navnet som allerede er tilordnet et annet objekt i databasen.
oppløsning
Brukere anbefales å velge et annet navn eller objekt, eller endre og endre navn på et eksisterende objekt for å tillate bruk av ønsket navn. Se DBA_OBJECTS eller USER_OBJECTS for å bekrefte om en annen bruker har navnet i bruk.
Kontroller også kallenavn og offentlige synonymer for det eksisterende navnet, ved å bruke følgende setning:
VELG * FRA ALL_OBJECTS WHERE ObjectName = "NAME";
Tabellen ALL_OBJECTS inneholder listen over alle tilgjengelige tilgjengelige objekter som er tilgjengelige for den spesifikke innloggings-IDen. Hvis du vil gjenbruke et navn, sletter du alle uønskede objekter med samme navn.
Ignorerer feilen ved hjelp av unntakshåndtering
Brukere kan omgå ORA-00955 ved å opprette en unntakshåndterer som ignorerer objektets opprettelsesfeil. Opprett en PL / SQL-kode som håndterer feilen og tilordne "NULL" til statusen sin:
UTKLAR MyNamedTableExists EXCEPTION; pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50): = 'opprett tabell tempstore (col1 nummer)'; BEGIN / kjør øyeblikkelig sql_stmt; / CREATE TABLE MyNamedTableExists AS SELECT * Fra MySupposedTable; /+ Ignorer ORA-955-feil hvis tabellnavnet allerede finnes) / Unntak når MyNamedTableExists da NULL; END;