Я знаю, что есть принятый ответ, но позвольте мне показать вам другой подход.Вам не нужно объявлять какие-либо переменные, поскольку вы можете использовать специальную переменную FOUND
.Кроме того, было бы лучше добавить предложение LIMIT
к вашему выбору, поскольку одной строки достаточно, чтобы вызвать исключение:
CREATE OR REPLACE FUNCTION pr_bad_records_check() RETURNS void AS $$
BEGIN
PERFORM * FROM vw_my_bad_records LIMIT 1;
IF FOUND THEN
RAISE EXCEPTION 'some bad rows were found, run select * from vw_my_bad_records for details';
END IF;
END;
$$ LANGUAGE plpgsql;