Чтобы узнать значение скалярной переменной:
raise notice 'Моя переменная var1 = %, а var2 = %', var1, var2;
Чтобы узнать, что было в какой-нибудь промежуточной таблице, можно использовать refcursor'ы:
declare
...
cur1 refcursor := 'unique_name1'; -- Создали переменную типа refcursor
...
open cur1 for
select ...; -- Привязываем курсор к запросу, который хотим проследить
тогда снаружи функцию/процедуру можно будет вызывать так:
begin transaction;
select public.my_func1(); -- для функции
call public.my_proc1; -- или для процедуры
fetch all from "unique_name1"; -- выведет таблицу по этому курсору. Имя в двойных, а не одинарных кавычках.
commit transaction; -- достать данные можно пока транзакция не закончилась, поэтому здесь явно оборачиваем всё в транзакцию