Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

RESIGNAL - Fehler in lokaler Fehler-Routine melden

RESIGNAL meldet in einer lokalen Fehler-Routine explizit einen Fehler oder einen SQLSTATE. Im Unterschied zu SIGNAL ist die Angabe eines Fehlernamens oder eines SQLSTATE optional.

RESIGNAL verwendet den Diagnosebereich der SQL-Anweisung, die die Fehler-Routine aktiviert hat, als aktuellen Diagnosebereich und trägt entsprechende Diagnoseinformationen in den aktuellen Diagnosebereich ein.

RESIGNAL ist eine der Diagnoseanweisungen in Routinen. Detaillierte Informationen zum Einsatz und zur Wirkung von RESIGNAL finden Sie im Abschnitt „Diagnoseinformationen in Routinen".



RESIGNAL [ fehlername | sqlstate ] [SET diagnose_info ]


sqlstate ::= SQLSTATE [VALUE] alphanumerisches_literal

diagnose_info ::= MESSAGE_TEXT= message

message ::={ alphanumerisches_literal | lokale_variable | routinenparameter }



fehlername

Name für einen Fehler oder einen SQLSTATE. fehlername wird in den lokalen Daten einer Routine definiert, siehe „Lokale Daten".


sqlstate

Explizite Angabe eines selbst definierten SQLSTATE (alphanumerisches Literal der Länge 5), siehe Abschnitt „Selbst definierte SQLSTATEs".


fehlername und sqlstate nicht angegeben:

Die Diagnoseinformationen CONDITION_IDENTIFIER und RETURNED_SQLSTATE bleiben unverändert.


MESSAGE_TEXT=alphanumerisches_literal

Beliebiger Informationstext (maximale Länge: 120 Zeichen).


MESSAGE_TEXT=lokale_variable / routinenparameter

Als Informationstext wird der Wert der lokalen Variablen oder des angegebenen Routinen-Parameters eingetragen.
Der Datentyp von lokale_variable / routinenparameter muss mit dem Datentyp VARCHAR(120) verträglich sein. Es gelten die Regeln im Abschnitt „Werte in Prozedurparameter (Ausgabe) oder lokale Variable eintragen". Die Textlänge wird in MESSAGE_LENGTH und MESSAGE_OCTET_LENGTH eingetragen.


SET MESSAGE TEXT nicht angegeben:

Die Diagnoseinformationen MESSAGE_TEXT, MESSAGE_LENGTH und MESSAGE_OCTET_LENGTH bleiben unverändert.


Beispiele (siehe auch "Diagnoseinformationen in Routinen" )

Eine Bedingung mit Informationstext melden:

RESIGNAL SET MESSAGE_TEXT='The end is near!';

Siehe auch

COMPOUND, CREATE FUNCTION, CREATE PROCEDURE, GET DIAGNOSTICS, SIGNAL