? Oracle PL /SQL fejlkode 955, også kendt som ORA- 00955 fejl , der opstår, når en bruger opretter et objekt i databasen med et navn allerede er i brug af et eksisterende objekt såsom et bord , visning, index, synonym eller klynge . Giver objektet et alternativt navn normalt løser fejlen. Display Message
En bruger opretter et objekt på Oracle PL /SQL kommandolinjen med et bestemt navn , og ser meddelelsen " ORA- 00955 navn er allerede brugt af et eksisterende objekt ", der vises på skærmen .
Årsager
fejlmeddelelse kan opstå, når en bruger installerer en opdatering , løber en Oracle PL /SQL script, der falder eller opretter tabeller eller indekser eller bruger et reserveret ord for et system defineret objekt. Normalt vil brugeren have forsøgt at oprette et objekt med et navn allerede er tildelt til et eksisterende objekt i databasen .
Solution
Brugere rådes til at vælge et andet navn eller den genstand eller at ændre og omdøbe et eksisterende objekt for at muliggøre brugen af den påtænkte navn. Forespørge systemet tabel DBA_OBJECTS eller USER_OBJECTS at bekræfte, om en anden bruger har navnet i brug
også læse alias og offentlige synonymer for det eksisterende navn , ved hjælp af følgende udsagn : .
SELECT * FROM ALL_OBJECTSWHERE ObjectName = "NAME "
ALL_OBJECTS tabellen indeholder en liste over alle brugerens -tilgængelige genstande til rådighed for den specifikke login- id. Hvis du vil genbruge et navn , drop alle uønskede objekter med samme navn.
Bypass fejl ved hjælp en undtagelse Handler
Brugerne kan omgå ORA- 00955 ved at skabe en undtagelse handleren der ignorerer det objekt skabelse fejl. Opret et stykke af PL /SQL -kode, der fælder fejlen og overdrager fejlen en "NULL" status : Hej
DECLAREMyNamedTableExists undtagelse, pragma exception_init ( MyNamedTableExists , -955 ), sql_stmt varchar2 (50) : = ' skabe table tempstore ( col1 nummer) « BEGIN /* udføre øjeblikkelig sql_stmt , * /CREATE TABLE MyNamedTableExists ASSELECT * FROM MySupposedTable ;/* + Ignorer ORA - 955 fejl, hvis tabellen findes allerede ) * /undtagelse, når MyNamedTableExists derefter NULL ; END ; KAYAK