Вы всегда можете запустить динамический SQL
DO $func$
BEGIN
EXECUTE $$
COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
$$;
END;
$func$ LANGUAGE plpgsql;
Итак, вы формируете команду как строку, а затем передаете ее в EXECUTE
. Это работает как plpgsql
, что вы можете запускать как inline, как я показал, или объявить как функцию:
CREATE OR REPLACE FUNCTION public.export_table()
RETURNS VOID AS $func$
BEGIN
EXECUTE $$
COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
$$;
END;
$func$ LANGUAGE plpgsql;
Затем позвоните, используя SELECT public.export_table()