PostgreSQL Экспорт таблицы .csv в качестве текущей даты - PullRequest
0 голосов
/ 08 мая 2018

Мне нужно экспортировать свою таблицу как файл .csv, но имя должно быть текущей датой.

В настоящее время я использую

COPY public."table" TO 'E:\job.csv' DELIMITER ',' CSV HEADER

Что мне делать? Я пытался найти ответ, но безуспешно ...

1 Ответ

0 голосов
/ 08 мая 2018

Вы всегда можете запустить динамический 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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...