Как я могу присвоить значение переменной, объявленной вне исключения в bigquery?

Я использую хранимую процедуру, и мне нужно присвоить значение переменной, объявленной вне исключения, идея состоит в том, чтобы иметь возможность вызывать другую хранимую процедуру с дополнительными переменными при возникновении ошибки

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]

1 ответ

Решение

Если вы хотите перенести какое-либо значение из основного блока в 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;
Другие вопросы по тегам