EXECUTE format COPY. Не работают переменные
Создал в БД postgres функцию, которая при вызове должна выгружать данные в файл на сервере. Если подставляются переменные, то файл создается, НО внутри только одна строка с HEADER'м, а данных нет... при этом никаких ошибок не выдается. Вот сама функция:
CREATE OR REPLACE FUNCTION public.gidro5
(
IN tms1 timestamp without time zone = '2019-01-01 00:00:00'::timestamp without time zone,
IN tms2 timestamp without time zone = '2020-01-01 00:00:00'::timestamp without time zone
)
RETURNS void AS
$$
begin
EXECUTE format('COPY(
SELECT
sensor.id as "NST",
measurement.timestamp_ as "time_stamp",
measurement.number as "h"
FROM
public.measurement
INNER JOIN public.sensor ON (public.measurement.sensor = public.sensor.id)
WHERE
measurement.timestamp_ BETWEEN %L AND %L
ORDER BY
measurement.timestamp_) TO ''/tmp/1.csv'' with (FORMAT csv, HEADER true, delimiter '','');', tms1, tms2);
end
$$
LANGUAGE 'plpgsql';
ALTER FUNCTION public.gidro5(timestamp without time zone, timestamp without time zone)
OWNER TO postgres;
Однако, если заместо tms1 и tms2 подставить даты напрямую, вот так:
measurement.timestamp_) TO ''/tmp/1.csv'' with (FORMAT csv, HEADER true, delimiter '','');', '2021-01-01', '2022-01-01');
то все прекрасно работает. Подскажите пожалуйста что тут не так с переменными?