Я пытаюсь вставить значения в цикле в таблицу, но я не могу это сделать, так как моя ошибка сбрасывания функции.Как вставить данные в таблицу во время цикла в postgresql?
Я хочу вставить данные, получаемые из выбранного состояния в базовую таблицу Date_Dim.
CREATE OR REPLACE FUNCTION insert_date_dimension(
OUT "date" date,
OUT week integer,
OUT quarter integer,
OUT dayname text,
OUT monthname text,
OUT year integer,
OUT month integer
) RETURNS SETOF RECORD STABLE LANGUAGE plpgsql AS
$$DECLARE
dat date;
start_date timestamp := '2016-01-01 00:00:00';
end_date timestamp := '2016-12-31 00:00:00';
BEGIN
RETURN QUERY
insert into date_dim
SELECT
d::date,
date_part('week', d)::integer,
date_part('quarter', d)::integer,
to_char(d, 'day'),
to_char(d, 'month'),
date_part('year', d)::integer,
date_part('month', d)::integer
FROM generate_series(start_date, end_date, '1 day') d(d);
END;$$;
ERROR: cannot open INSERT query as cursor
CONTEXT: PL/pgSQL function insert_date_dimension() line 6 at RETURN QUERY