Как я могу присвоить значение переменной, объявленной вне исключения в 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;