2013-07-23 39 views
2

由于文档描述here,我需要声明一个在OPEN时间接受参数的游标。带参数的PostgreSQL光标

我的查询看起来类似于:

DECLARE cur CURSOR (argName character varying) FOR SELECT * FROM "TableName" WHERE "SomeColumn" = argName;

当我这样做,我得到一个可爱的错误:

ERROR: syntax error at or near "(" 
LINE 1: DECLARE cur CURSOR (argName character varying) FOR SELECT * FROM... 
         ^

似乎是PostgreSQL不接受这种形式的游标声明的。 有什么办法可以解决这个问题吗?任何解决方法?

感谢

回答

2

尝试类似:

DECLARE 
    argName varchar; 
    cur CURSOR FOR SELECT * FROM "TableName" WHERE "SomeColumn" = argName; 

argName将予以当你OPEN这个游标的查询。

+0

谢谢!那看起来很有希望 – gcontreras

+0

问题: 将argName更改为新值后,我应该关闭并打开_cur_,对吧? – gcontreras

+0

@gcontreras是的。当游标打开时,它不会更改其查询和参数。 –