我經常在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