? Oracle PL /SQL error 955 kode , også kjent som ORA - 00955 feil , oppstår når en bruker oppretter et objekt i databasen med et navn som allerede er i bruk av et eksisterende objekt som et bord , visning, indeks, synonym eller klynge . Å gi objektet et alternativt navn forsvinner vanligvis feilen. Vise Message
En bruker oppretter et objekt på Oracle PL /SQL kommandolinje med et bestemt navn og ser meldingen " ORA - 00955 navn brukes allerede av et eksisterende objekt " vises på skjermen .
Årsaker
feilmeldingen kan oppstå når en bruker installerer en oppdatering , kjører en Oracle PL /SQL script som faller eller lager tabeller eller indekser eller bruker et reservert ordet for et system - definert objekt . Vanligvis vil brukeren har forsøkt å lage et objekt med et navn som allerede er tildelt et eksisterende objekt i databasen.
Solution
Brukere anbefales å velger et annet navn eller gjenstanden eller til å modifisere og endre eksisterende objekt for å tillate bruk av den tiltenkte navn . Spørring mot systemet tabellen DBA_OBJECTS eller USER_OBJECTS å bekrefte om en annen bruker har navnet i bruk
Sjekk også alias og offentlige synonymer for det eksisterende navnet , med følgende utsagn : .
SELECT * FROM ALL_OBJECTSWHERE ObjectName = " NAVN ";
ALL_OBJECTS tabell inneholder listen over alle tilgjengelige for brukere objektene som er tilgjengelige for den spesifikke log -in ID . Å gjenbruke et navn , droppe alle uønskede objekter med samme navn .
Bypass feilen ved hjelp av et unntak Handler
Brukere kan omgå ORA - 00955 ved å opprette et unntak behandleren som ignorerer objektoppretting feil . Lag et stykke PL /SQL-kode som fanger feil og tildeler feilen en " NULL " status : en
DECLAREMyNamedTableExists unntak, Pragma exception_init ( MyNamedTableExists , -955 ) ; sql_stmt varchar2 ( 50 ) : = ' skape tabellen tempstore ( col1 nummer) '; BEGIN /* utføre umiddelbare sql_stmt ; * /CREATE tABLE MyNamedTableExists ASSELECT * FROM MySupposedTable ;/* + Ignorer ORA - 955 feil hvis tabellen navnet allerede eksisterer ) * /unntak når MyNamedTableExists deretter null; END ;