我尝试创建一个函数并在此之后运行它。一个我单独运行它们 - 创建和运行工作。但并非所有这些都作为一个长脚本的一部分 - 在这种情况下我得到"当非预期"时返回结果,尽管事实函数返回无效。
这就是我正在做的事情:
CREATE OR REPLACE FUNCTION generate_calendar()
RETURNS void
LANGUAGE plpgsql
AS $function$
declare i date;
declare _error1 text;
begin
select max(day) into i from calendar;
if coalesce(i,'1900-01-01')<=date_trunc('day', now()) then
i:= '2013-01-01';
WHILE i <= now()+'2 years'::interval
LOOP
insert into calendar values (i);
i := i+ '1 day'::interval;
END LOOP;
end if;
EXCEPTION WHEN OTHERS THEN _error1:=SQLSTATE;
RETURN ;
END;
$function$
;
select generate_calendar();