【发布时间】:2015-10-12 11:17:27
【问题描述】:
您好我正在尝试编写一个 pgsql 函数,该函数将表数据复制到 csv 文件,并且在使用函数内部的变量值时遇到了困难,如下所示:
CREATE OR REPLACE FUNCTION test3() RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
_currenttime timestamp := now();
BEGIN
copy (SELECT * FROM table1 WHERE createdtime < _currenttime - INTERVAL '1 days') TO '/tmp/table1.csv';
END
$$;
访问函数时出错:
select test3();
错误:列“_currenttime”不存在第 1 行:...py (SELECT * FROM table1 WHERE createdtime
请求您的帮助。
【问题讨论】:
-
在错误输出中bpminstance指的是table1
-
试试
copy (SELECT * FROM table1 WHERE createdtime < NOW() - interval '1 day') TO '/tmp/table1.csv'; -
谢谢,我试过了,但是我后面还有其他语句,所以我需要在脚本中引用这个变量。
-
我有一系列的复制命令,根据我存储在变量中的当前时间戳,我需要收集数据。以便所有表都基于该变量提供数据。我尝试了您的建议并得到了错误: \i /home/cust/test3.sql psql:/home/cust/createFunction_3.sql:69: ERROR: syntax error at or near ":=" LINE 15: ... FROM table1 WHERE createdtime