带参数的PostgreSQL游标

时间:2013-07-23 11:21:58

标签: postgresql cursor arguments postgresql-9.1

正如文档描述here,我需要在OPEN时声明一个接受参数的游标。

我的查询类似于:

  

DECLARE cur CURSOR(argName字符变化)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不接受这种形式的游标声明。 有什么方法可以解决这个问题吗?任何解决方法?

由于

3 个答案:

答案 0 :(得分:2)

尝试类似:

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

当您argName此光标时,OPEN将被带入查询。

答案 1 :(得分:2)

答案 2 :(得分:0)

摘自:https://www.postgresql.org/docs/current/static/plpgsql-cursors.html

DECLARE
    key integer;
    curs4 CURSOR FOR SELECT * FROM tenk1 WHERE unique1 = key;
BEGIN
    key := 42;
    OPEN curs4;

来自: