-2

当我运行以下查询时

CREATE OR REPLACE FUNCTION some_function() RETURNS timestamptz AS $$ 
DECLARE         
   curtime timestamp; 
BEGIN    
   curtime := 'now';     
   INSERT INTO logtable VALUES (logtxt, curtime);    
   RETURN curtime; 
END; 

显示的错误是

错误:“$$”处或附近未终止的美元引号字符串

4

1 回答 1

2

缺少函数定义的最后一行。之后END;应该有:

$$ LANGUAGE plpgsql;

那是因为您从我对上一个问题的回答中复制了它:

无法在 PostgreSQL 8.2 中运行块

我在回答中犯了一个编辑错误,切断了那条线。我在后面的示例中也将其正确,并链接到解释这一切的文档,因此看起来您只是复制并粘贴了它,而没有尝试了解正在发生的事情。

请阅读有关 PL/PgSQL 的文档,但也要考虑一下您为什么要这样做。您发布的代码没有多大意义,我怀疑您正试图以非常倒退的方式解决问题。试着解释你想要达到的目标。

如果您确实必须这样做,请尝试我对您先前问题的回答末尾的代码。

于 2012-08-14T07:14:48.017 回答