当我运行以下查询时
CREATE OR REPLACE FUNCTION some_function() RETURNS timestamptz AS $$
DECLARE
curtime timestamp;
BEGIN
curtime := 'now';
INSERT INTO logtable VALUES (logtxt, curtime);
RETURN curtime;
END;
显示的错误是
错误:未结合的美元引用字符串处于或接近“$$”
答案 0 :(得分:2)
缺少函数定义的最后一行。在END;
之后应该有:
$$ LANGUAGE plpgsql;
那是因为你从我对前一个问题的回答中复制了它:
Not able to run block in PostgreSQL 8.2
我在我的回答中做了一个编辑错误。我在后面的例子中也说得对,并且链接到解释它的文档,所以看起来你只是复制并粘贴它而不试图理解发生了什么。
请阅读the documentation on PL/PgSQL,但也要考虑为什么这样做。您发布的代码没有多大意义,我怀疑您正试图以非常倒退的方式解决问题。试着解释一下你想要达到的目标。
如果您真的必须这样做,请尝试end of my answer to your prior question上的代码。