我想问一下如何将光标返回限制表? 我的意思是一个函数,它采用(如果是绝对位置,如果向前或向后,有多少记录,绝对位置)并且作为获取绝对+前进。 我试过这个,但没有用。
drop function func(text,text,integer,integer);
create function func(text,text,integer,integer=0) returns refcursor as '
declare
ref refcursor;
begin
open ref for select * from test;
if $1="A" then
if $2="F" then
move absolute $4 in ref;
return fetch forward $3 from ref;
elseif $2="B"
move absolute $4 in ref;
return fetch backward $3 from ref;
end if;
elseif $1="B" then
if $2="F" then
return fetch forward $3 from ref;
elseif $2="B"
return fetch backward $3 from ref;
end if;
end if;
end;
'language plpgsql;
答案 0 :(得分:0)
我认为您可能需要在查询本身中应用这些约束,而不是试图操纵游标。
我假设您的真实查询会有一个ORDER BY
子句,因为没有它,FETCH
方向毫无意义。而且,"是绝对的"参数似乎没有多大用处,因为指定'B'
与指定位置'A'
的{{1}}相同,所以您应该能够删除它。
最终结果将是这样的:
0