正如文档描述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不接受这种形式的游标声明。 有什么方法可以解决这个问题吗?任何解决方法?
由于
答案 0 :(得分:2)
尝试类似:
DECLARE
argName varchar;
cur CURSOR FOR SELECT * FROM "TableName" WHERE "SomeColumn" = argName;
当您argName
此光标时,OPEN
将被带入查询。
答案 1 :(得分:2)
该语法仅在plpgsql函数内有效。
http://www.postgresql.org/docs/current/static/plpgsql-cursors.html
答案 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;
来自: