नोट
इस पेज तक पहुँच के लिए प्रमाणन की आवश्यकता होती है. आप साइन इन करने या निर्देशिकाओं को बदलने का प्रयास कर सकते हैं.
इस पेज तक पहुँच के लिए प्रमाणन की आवश्यकता होती है. आप निर्देशिकाओं को बदलने का प्रयास कर सकते हैं.
Applies to:
Databricks SQL
Databricks Runtime 16.3 and above
Re-raises the condition handled by the condition handler.
This statement may only be used within a compound statement.
Syntax
RESIGNAL
Parameters
None
Examples
> CREATE TABLE log(eventtime TIMESTAMP, log STRING);
> BEGIN
DECLARE EXIT HANDLER FOR DIVIDE_BY_ZERO
BEGIN
DECLARE cond STRING;
DECLARE message STRING;
DECLARE state STRING;
DECLARE args MAP<STRING, STRING>;
DECLARE line BIGINT;
DECLARE argstr STRING;
DECLARE log STRING;
GET DIAGNOSTICS CONDITION 1
cond = CONDITION_IDENTIFIER,
message = MESSAGE_TEXT,
state = RETURNED_SQLSTATE,
args = MESSAGE_ARGUMENTS,
line = LINE_NUMBER;
SET argstr =
(SELECT aggregate(array_agg('Parm:' || key || ' Val: value '),
'', (acc, x)->(acc || ' ' || x))
FROM explode(args) AS args(key, val));
SET log = 'Condition: ' || cond ||
' Message: ' || message ||
' SQLSTATE: ' || state ||
' Args: ' || argstr ||
' Line: ' || line;
INSERT INTO log VALUES(current_timestamp(), log);
RESIGNAL;
END;
SELECT 10/0;
END;
[DIVIDE_BY_ZERO] Division by zero. Use try_divide to tolerate divisor being 0 and return NULL instead.
> SELECT * FROM log ORDER BY eventtime DESC LIMIT 1;
Condition: DIVIDE_BY_ZERO Message: Division by zero. Use try_divide to tolerate divisor being 0 and return NULL instead. SQLSTATE: 22012 Args: Line: 28
Related articles
- SQL Scripting
- CASE Statement
- Compound Statement
- SIGNAL Statement
- FOR Statement
- IF Statement
- ITERATE Statement
- REPEAT Statement
- SIGNAL Statement
- Error handling and error messages