0

我正在使用存储过程,我需要将值分配给在异常之外声明的变量,其想法是能够在发生错误时调用具有附加变量的另一个存储过程

BEGIN
DECLARE v_error string;
SELECT 1/0; --division by zero: 1 / 0
EXCEPTION WHEN ERROR THEN
SET v_error = CONCAT('execution error: ',@@error.message, ' Query: ',@@error.statement_text);
END;

结果是:

Undeclared variable: v_error at [5:5]
4

1 回答 1

0

如果要将主块中的任何值带入EXCEPTION块中,则将DECLARE其带入块外BEGIN

DECLARE kk INT64;

BEGIN
  SET kk = (SELECT MAX(i) FROM `fh-bigquery.public_dump.numbers_255`);
  SELECT 1/0;
EXCEPTION WHEN ERROR THEN
  SELECT kk;
END;
于 2020-06-30T22:25:27.810 回答