【发布时间】:2012-02-11 03:28:10
【问题描述】:
我经常在 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;
它会引发以下语法错误 错误:“文件路径”处或附近的语法错误 SQL 状态:42601
是否有参数化复制命令的目标值?
【问题讨论】:
-
您使用的是哪个版本的 PostgreSQL?
标签: function postgresql plpgsql