Поделиться через


Оператор SIGNAL

применимо к:отмечено галочкой Databricks Runtime 16.3 и более поздние версии

Важный

Эта функция доступна в общедоступной предварительной версии.

Вызывает условие.

Эта инструкция может использоваться только в составной инструкции.

Примечание. Databricks рекомендует использовать RESIGNAL для вызова условий из обработчика. RESIGNAL создает стек диагностики в SQL Standard, а SIGNAL очищает стек. Использование RESIGNAL в обработчике поддерживает возможность будущего использования диагностического стека.

Синтаксис

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

Параметры

  • condition_name

    Имя локально определенного условия или системного условия ошибки.

  • argument_map

    При необходимости литерал MAP<STRING, STRING>, который присваивает значения системно определенному параметризованному сообщению условий.

  • message_str

    По желанию, литерал STRING, который предоставляет строку сообщения для возникшего SQLSTATE или пользовательского условия.

  • sqlstate

    Литерал STRING длиной 5. Если задано, поднимите USER_RAISED_EXCEPTION с указанным SQLSTATE.

Примеры

> 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;