Delen via


SIGNAL-instructie

Van toepassing op:aangevinkt als ja Databricks SQL aangevinkt als ja Databricks Runtime 16.3 en hoger

Verhoogt een voorwaarde.

Deze instructie mag alleen worden gebruikt binnen een samengestelde instructie.

Opmerking: Databricks raadt het gebruik van RESIGNAL- aan om voorwaarden te genereren vanuit een handler. RESIGNAL bouwt een diagnostische stack in de SQL-standaard, terwijl SIGNAL de stack wist. Het gebruik van RESIGNAL binnen een handler behoudt toekomstige exploitatie van de diagnostische stack.

Syntaxis

SIGNAL { condition_name
         [ SET { MESSAGE_ARGUMENTS = argument_map |
                 MESSAGE_TEXT = message_str } ] |
         SQLSTATE [VALUE] sqlstate [ SET MESSAGE_TEXT = message_str ] }

Parameterwaarden

  • condition_name

    De naam van een lokaal gedefinieerde voorwaarde of door het systeem gedefinieerde foutvoorwaarde.

  • argument_map

    Optioneel een MAP<STRING, STRING>-letterlijke waarde die waarden toewijst aan een door het systeem gedefinieerd geparametriseerd voorwaardebericht.

  • message_str

    Eventueel een STRING literal die een bericht levert aan de opgetreden SQLSTATE of door de gebruiker gedefinieerde voorwaarde.

  • sqlstate

    Een STRING letterlijke waarde met een lengte van 5. Indien opgegeven, verhoog USER_RAISED_EXCEPTION met de opgegeven SQLSTATE.

Voorbeelden

> DECLARE input INT DEFAULT 5;

> BEGIN
    DECLARE arg_map MAP<STRING, STRING>;
    IF input > 4 THEN
      SET arg_map = map('errorMessage',
                        'Input must be <= 4.');
      SIGNAL USER_RAISED_EXCEPTION
        SET MESSAGE_ARGUMENTS = arg_map;
    END IF;
  END;