Я хочу использовать переменную как часть инструкции, но она говорит, что "tableref" не существует.
CREATE OR REPLACE FUNCTION ff(tipo_acta integer, hasta date)
RETURNS void AS
$BODY$
DECLARE
tableref varchar;
r record;
BEGIN
if tipo_acta = 1 then
tableref = 't1';
elsif tipo_acta = 2 then tableref = 't2';
else tableref = 't3';
end if;
for r select id from tableref where somedate >= hasta loop
--
end loop;
Я пытался использовать EXECUTE 'select id from ' || tableref || ' where....'
, но тоже не работает
Я думал сначала получить запись с помощью select id into r from t1 where ..
, а затем использовать ее в цикле, но, похоже, нет способа использовать запись в цикле следующим образом:
FOR r LOOP
....
END LOOP;