Postgresql 如何使用变量在函数中指定复制到目标?
在PostgreSQL 9.3中,我想创建一个函数,将表中的数据复制到CSV文件中。此功能的工作原理是:Postgresql 如何使用变量在函数中指定复制到目标?,postgresql,Postgresql,在PostgreSQL 9.3中,我想创建一个函数,将表中的数据复制到CSV文件中。此功能的工作原理是: CREATE OR REPLACE FUNCTION backup_tables(character varying) RETURNS integer AS $BODY$ declare fileName text; begin copy adhoc_query to 'c:/misc/adhoc_query.csv' csv; return 1; end
CREATE OR REPLACE FUNCTION backup_tables(character varying)
RETURNS integer AS
$BODY$
declare
fileName text;
begin
copy adhoc_query to 'c:/misc/adhoc_query.csv' csv;
return 1;
end;
但是,我从中得到一个语法错误:
CREATE OR REPLACE FUNCTION backup_tables(character varying)
RETURNS integer AS
$BODY$
declare
fileName text;
begin
fileName = 'c:/misc/adhoc_query.csv';
copy adhoc_query to fileName csv;
return 1;
end;
pgAdmin将copy命令中的“fileName”标记为错误的位置。我希望能够让调用方指定目标文件,但这似乎是不可能的。有办法吗?路径不能使用文本以外的任何内容。但是您可以从变量构建命令,然后执行它
...
EXECUTE 'COPY (' || adhoc_query || ') TO ''' || fileName || ''' CSV;';
...
非常感谢。我本不希望这样做,但如果我必须这样做,我必须这样做。