次の方法で共有


SIGNAL ステートメント

適用対象:チェックが 'はい' とマークされている Databricks SQL チェックが 'はい' とマークされている 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

    長さ 5 の STRING リテラル。 指定した場合は、指定した USER_RAISED_EXCEPTIONSQLSTATE を発生させます。

例示

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