適用対象: 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 ] }
パラメーター
-
ローカル定義条件またはシステム定義エラー条件の名前。
argument_map
必要に応じて、システム定義のパラメーター化条件メッセージに値を割り当てる
MAP<STRING, STRING>
リテラル。message_str
必要に応じて、発生させた
STRING
またはユーザー定義の条件にメッセージ文字列を提供するSQLSTATE
リテラル。sqlstate
長さ 5 の
STRING
リテラル。 指定した場合は、指定した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;
関連資料
- SQLスクリプティング
- CASE ステートメント
- 複合ステートメント
- FOR ステートメント
- IF ステートメント
- ITERATE ステートメント
- REPEAT ステートメント
- RESIGNAL ステートメント
- エラー処理とエラー メッセージ