sql >> Database >  >> RDS >> Oracle

Inleiding tot het afhandelen van PL/SQL-uitzonderingen in Oracle Database

We kunnen niet zeggen dat de code robuust is totdat deze alle uitzonderingen aankan. Bugs en abrupte beëindiging van een programma zijn de nachtmerries van het leven van een programmeur. Geen enkele programmeur wil een code ontwikkelen die halverwege crasht of zich onverwacht gedraagt. Dus voor een soepele uitvoering van een software is het noodzakelijk om allerlei uitzonderingen af ​​te handelen.

Het kennen van uw probleem is de eerste stap naar het vinden van de oplossing. Laten we dus meer leren over het afhandelen van uitzonderingen in de Oracle-database.

Wat is een uitzondering?

Elke abnormale toestand of gebeurtenis die de normale stroom van de instructies van uw programma tijdens runtime onderbreekt, is een uitzondering. Of je kunt in eenvoudige bewoordingen zeggen dat een uitzondering een runtime-fout is.

Infobyte:
Uitzonderingen zijn ontworpen voor runtime-foutafhandeling in plaats van compile-time-foutafhandeling. Fouten die optreden tijdens de compilatiefase worden gedetecteerd door de PL/SQL-compiler en teruggekoppeld naar de gebruiker.

Soorten uitzonderingen

Er zijn twee soorten PL/SQL-uitzonderingen in de Oracle-database.

  1. Door het systeem gedefinieerde uitzonderingen en
  2. Door de gebruiker gedefinieerde uitzonderingen

Door het systeem gedefinieerde uitzonderingen

Door het systeem gedefinieerde uitzonderingen worden impliciet gedefinieerd en onderhouden door de Oracle-server. Deze uitzonderingen worden voornamelijk gedefinieerd in het Oracle STANDARD-pakket . Elke keer dat er een uitzondering optreedt in het programma. De Oracle-server komt overeen met en identificeert de juiste uitzondering uit de beschikbare reeks uitzonderingen.

Door het systeem gedefinieerde uitzonderingen hebben meestal een negatieve foutcode en foutmelding. Deze fouten hebben een korte naam die wordt gebruikt met de uitzonderingshandler.

Infobyte:
Oracle beschikt over twee hulpprogramma's SQLCODE &SQLERRM om de foutcode en het bericht voor de laatst optredende uitzondering op te halen.

Door de gebruiker gedefinieerde uitzonderingen

In tegenstelling tot System-Define Exception, worden User-Define Exceptions expliciet naar voren gebracht in de hoofdtekst van het PL/SQL-blok (meer specifiek in de BEGIN-END-sectie) met behulp van de RAISE-instructie.

Een door de gebruiker gedefinieerde uitzondering declareren in Oracle Database.

Er zijn drie manieren om door de gebruiker gedefinieerde uitzonderingen in Oracle Database te declareren.

  1. Door een variabele van het type UITZONDERING te declareren in de declaratiesectie.

U kunt een door de gebruiker gedefinieerde uitzondering declareren door een variabele van het gegevenstype UITZONDERING in uw code te declareren en deze expliciet in uw programma te verhogen met behulp van de RAISE-instructie en deze af te handelen in de uitzonderingssectie.

  1. Declareer een door de gebruiker gedefinieerde uitzondering met de functie PRAGMA EXCEPTION_INIT.

Met de functie PRAGMA EXCEPTION_INIT kunt u een niet-vooraf gedefinieerd foutnummer toewijzen aan de variabele van het gegevenstype EXCEPTION. Betekent dat u met dezelfde functie een variabele van het datatype UITZONDERING kunt associëren met een standaardfout.

  1. RAISE_APPLICATION_ERROR-methode.

Met deze methode kunt u een door de gebruiker gedefinieerde uitzondering declareren met uw eigen aangepaste foutnummer en bericht.

Dat is het voor deze sectie. Ik hoop dat je genoten hebt van het lezen van deze korte inleiding tot het afhandelen van uitzonderingen in Oracle Database. In deze blog heb ik geprobeerd een paar vragen te beantwoorden die je kunt verwachten in je Oracle Database Certificering en in het Interview .

Blijf op de hoogte, want in de volgende zelfstudie zullen we enkele coole voorbeelden geven waarin de bovengenoemde concepten worden uitgelegd, die u zullen helpen uw kennis te vergroten en u een sterke greep te geven op de concepten van het afhandelen van PL/SQL-uitzonderingen. Bedankt en nog een fijne dag!


  1. Codeer uw eerste API met Node.js en Express:verbind een database

  2. Is er een SQL Server Profiler voor SQL Server Express?

  3. Transformatie van rijen naar kolommen in Oracle

  4. SQL DROP-index, DROP-tabel en DROP-databaseverklaringen uitgelegd met voorbeelden