In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Ausnahmen zur Verwendung in Fehlerhandlern in PSQL-Modulen erstellen, ändern und löschen.
EXCEPTION
In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Ausnahmen zur Verwendung in Fehlerhandlern in PSQL-Modulen erstellen, ändern und löschen.
CREATE EXCEPTION
Erstellen einer neuen Ausnahme zur Verwendung in PSQL-Modulen
DSQL, ESQL
CREATE EXCEPTION exception_name '<message>' <message> ::= <message-part> [<message-part> ...] <message-part> ::= <text> | @<slot> <slot> ::= one of 1..9
Parameter | Beschreibung |
---|---|
exception_name |
Ausnahmename.Die maximale Länge beträgt 63 Zeichen |
message |
Standardfehlermeldung.Die maximale Länge beträgt 1.021 Zeichen |
text |
Text beliebiger Zeichen |
slot |
Slotnummer eines Parameters.Die Nummerierung beginnt bei 1.Die maximale Steckplatznummer ist 9. |
Die Anweisung CREATE EXCEPTION
erzeugt eine neue Ausnahme zur Verwendung in PSQL-Modulen.Existiert eine gleichnamige Ausnahme, schlägt die Anweisung mit einer entsprechenden Fehlermeldung fehl.
Der Ausnahmename ist ein Standardbezeichner.In einer Dialect 3-Datenbank kann es in doppelte Anführungszeichen eingeschlossen werden, um die Groß-/Kleinschreibung zu berücksichtigen und bei Bedarf Zeichen zu verwenden, die in regulären Bezeichnern nicht gültig sind.Weitere Informationen finden Sie unter Bezeichner.
Die Standardnachricht wird im Zeichensatz NONE
gespeichert, d.h. in Zeichen eines beliebigen Einzelbyte-Zeichensatzes.Der Text kann im PSQL-Code überschrieben werden, wenn die Ausnahme ausgelöst wird.
Die Fehlermeldung kann “Parameter-Slots” enthalten, die beim Auslösen der Ausnahme gefüllt werden können.
Warning
|
Wenn die message eine Parameter-Slot-Nummer enthält, die größer als 9 ist, werden die zweite und die nachfolgenden Ziffern als Literaltext behandelt.Zum Beispiel wird |
Note
|
Benutzerdefinierte Ausnahmen werden in der Systemtabelle |
Die CREATE EXCEPTION
-Anweisung kann ausgeführt werden durch:
Benutzer mit dem Privileg CREATE EXCEPTION`
Der Benutzer, der die Anweisung CREATE EXCEPTION
ausführt, wird Eigentümer der Ausnahme.
CREATE EXCEPTION
-BeispieleE_LARGE_VALUE
CREATE EXCEPTION E_LARGE_VALUE
'The value is out of range';
E_INVALID_VALUE
CREATE EXCEPTION E_INVALID_VALUE
'Invalid value @1 for field @2';
Tip
|
Tips
Die Gruppierung von |
ALTER EXCEPTION
Ändern der von einer benutzerdefinierten Ausnahme zurückgegebenen Nachricht
DSQL, ESQL
ALTER EXCEPTION exception_name '<message>'
!! Vgl. auch CREATE EXCEPTION
für weitere Regeln !!
Die Anweisung ALTER EXCEPTION
kann jederzeit verwendet werden, um den Standardtext der Nachricht zu ändern.
Die Anweisung ALTER EXCEPTION
kann ausgeführt werden durch:
Der Inhaber der Ausnahme
Benutzer mit der Berechtigung ALTER ANY EXCEPTION
ALTER EXCEPTION
-BeispieleE_LARGE_VALUE
ALTER EXCEPTION E_LARGE_VALUE
'The value exceeds the prescribed limit of 32,765 bytes';
CREATE OR ALTER EXCEPTION
Ändern der von einer benutzerdefinierten Ausnahme zurückgegebenen Nachricht, falls die Ausnahme vorhanden ist;andernfalls eine neue Ausnahme erstellen
DSQL
CREATE OR ALTER EXCEPTION exception_name '<message>'
!! Vgl. Syntax von CREATE EXCEPTION
für weitere Regeln !!
Die Anweisung CREATE OR ALTER EXCEPTION
wird verwendet, um die angegebene Ausnahme zu erstellen, falls sie nicht existiert, oder um den Text der von ihr zurückgegebenen Fehlermeldung zu ändern, wenn sie bereits existiert.Wenn eine bestehende Ausnahme durch diese Anweisung geändert wird, bleiben alle bestehenden Abhängigkeiten erhalten.
CREATE OR ALTER EXCEPTION
-BeispielE_LARGE_VALUE
CREATE OR ALTER EXCEPTION E_LARGE_VALUE
'The value is higher than the permitted range 0 to 32,765';
DROP EXCEPTION
Löschen einer benutzerdefinierten Ausnahme
DSQL, ESQL
DROP EXCEPTION exception_name
Parameter | Beschreibung |
---|---|
exception_name |
Exception name |
Die Anweisung DROP EXCEPTION
dient zum Löschen einer Ausnahme.Alle Abhängigkeiten von der Ausnahme führen dazu, dass die Anweisung fehlschlägt und die Ausnahme nicht gelöscht wird.
Die DROP EXCEPTION
-Anweisung kann ausgeführt werden durch:
Der Inhaber der Ausnahme
Benutzer mit dem Privileg DROP ANY EXCEPTION
DROP EXCEPTION
-BeispieleE_LARGE_VALUE
wird gelöschtDROP EXCEPTION E_LARGE_VALUE;
RECREATE EXCEPTION
Erstellen einer neuen benutzerdefinierten Ausnahme oder Neuerstellen einer vorhandenen Ausnahme
DSQL
RECREATE EXCEPTION exception_name '<message>'
!! Vgl. Syntax CREATE EXCEPTION
für weitere Regeln !!
Die Anweisung RECREATE EXCEPTION
erzeugt eine neue Ausnahme zur Verwendung in PSQL-Modulen.Wenn bereits eine Ausnahme mit demselben Namen existiert, versucht die Anweisung RECREATE EXCEPTION
, sie zu löschen und eine neue zu erstellen.Wenn Abhängigkeiten von der bestehenden Ausnahme bestehen, schlägt der Löschversuch fehl und RECREATE EXCEPTION
wird nicht ausgeführt.
RECREATE EXCEPTION
-BeispielE_LARGE_VALUE
neu erstellenRECREATE EXCEPTION E_LARGE_VALUE
'The value exceeds its limit';