适用于: 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;