我经常在postgresql中使用复制函数,我想我会创建一个函数来使用它。 所以我们可以说我下表如何将参数传递给函数中的pgsql命令?
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
无论如何要参数化复制命令的目标值吗?
您使用的是哪个版本的PostgreSQL? – 2012-02-11 08:19:55
[plpgsql:连接变量到FROM子句]的可能重复(http://stackoverflow.com/questions/6258345/plpgsql-concatenation-of-variable-into-from-clause) – 2012-02-11 08:24:33