Я часто использую функцию копирования в postgresql и думал, что создам функцию, чтобы использовать ее.
Допустим, у меня есть следующая таблица
create table users
(
userid serial primary key,
prefix varchar(10) not null,
firstname varchar(255) not null,
lastname varchar(255) not null,
email varchar(500) not null,
password varchar(255) not null,
created timestamp not null,
modified timestamp not null
);
и следующая функция
create function getUsersCSV( )
RETURNS void AS
$BODY$
BEGIN
COPY (select * from users)
TO 'c:\temp\users.csv'
WITH HEADER
CSV QUOTE '"' DELIMITER ',';
END
$BODY$
LANGUAGE PLPGSQL;
функция работает, но если я изменю функцию на
create function getUsersCSV( filepath varchar )
RETURNS void AS
$BODY$
BEGIN
COPY (select * from users)
TO filepath
WITH HEADER
CSV QUOTE '"' DELIMITER ',';
END
$BODY$
LANGUAGE PLPGSQL;
выдает следующую синтаксическую ошибку
ОШИБКА: синтаксическая ошибка в или рядом с "filepath"
Состояние SQL: 42601
Есть ли способ параметризации целевого значения команды копирования?