无法在postgresql中运行块

时间:2012-08-14 06:55:59

标签: postgresql

当我运行以下查询时

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

显示的错误是

  

错误:未结合的美元引用字符串处于或接近“$$”

1 个答案:

答案 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上的代码。