Hva er Oracle SQL Code 955?

Forfatter: Morris Wright
Opprettelsesdato: 24 April 2021
Oppdater Dato: 17 Kan 2024
Anonim
Hva er Oracle SQL Code 955? - Artikler
Hva er Oracle SQL Code 955? - Artikler

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;