Oracle PL /SQL error code 955 , ook bekend als de ORA - 00955 fout , doet zich voor wanneer een gebruiker een object in de database creëert met een naam al in gebruik door een bestaand voorwerp, zoals een tafel , uitzicht , index , synoniem of cluster . Het geven van het object een alternatieve naam meestal lost de fout. Melding op LCD- Een gebruiker van een object op de Oracle PL /SQL-opdracht regel creëert met een bepaalde naam en ziet het bericht " ORA - 00955 naam wordt al gebruikt door een bestaand object " op het scherm . Oorzaken De foutmelding kan optreden wanneer een gebruiker een update installeert , loopt een Oracle PL /SQL-script dat de druppels of creëert tabellen of indexen of gebruik maakt van een gereserveerde woord voor een systeem gedefinieerde object . Meestal zal de gebruiker hebben geprobeerd om een object te maken met een naam die al is toegewezen aan een bestaand object in de database . Oplossing Gebruikers wordt geadviseerd om selecteer een andere naam of het object of om een bestaand object te wijzigen en hernoemen om voor het gebruik van de beoogde naam . Query het systeem tafel dba_objects of user_objects om te bevestigen of een andere gebruiker de naam in gebruik heeft Lees ook alias en openbare synoniemen voor de bestaande naam , met behulp van de volgende uitspraken : . SELECT * FROM ALL_OBJECTSWHERE ObjectName = " NAME " ; de tabel ALL_OBJECTS bevat de lijst van alle door de gebruiker toegankelijke objecten beschikbaar voor het specifieke log - in ID . Om een naam te hergebruiken , vallen alle ongewenste objecten met dezelfde naam . Bypass de Fout Met behulp van een Exception Handler Gebruikers kunnen omzeilen ORA - 00955 door het creëren van een uitzondering handler dat het object creatie fout negeert . Maak een stuk van PL /SQL- code die vallen de fout en wijst de fout een " NULL " Status : DECLAREMyNamedTableExists UITZONDERING ; pragma exception_init ( MyNamedTableExists , -955 ) ; sql_stmt varchar2 ( 50 ) : = ' maken tafel tempstore ( col1 nummer ) " ; BEGIN /* voeren onmiddellijke sql_stmt ; * /CREATE tABLE MyNamedTableExists ASSELECT * FROM MySupposedTable ;/* + Negeer ORA - 955 fouten , indien de naam van de tabel al bestaat ) * /UITZONDERING wanneer MyNamedTableExists dan NULL ; END ;
|