PostgreSQL游標(biāo)示例(創(chuàng)建游標(biāo),并在函數(shù)中遍歷之)
--drop function top100cur(refcursor);
create function top100cur(refcursor) returns refcursor as $$
begin
open $1 for select * from person limit 100;
return $1;
end
$$language plpgsql;
----------測試游標(biāo)---------
-- SELECT top100cur('abc');
-- fetch all from abc;
-- drop function from2cur(refcursor,int,int);
--這是一個(gè)返回游標(biāo)中在一定范圍內(nèi)記錄的函數(shù)--
create function from2cur(refcursor,int,int)returns setof text as $$
declare--聲明一些下標(biāo)變量
pnam text;
pno text;
index int;
lower int;
upper int;
begin
index:=1;
lower:=$2;
upper:=$3;
fetch $1 into pnam,pno;--必須先fetch一條,否則found為false
while found loop
--只在[lower,upper]區(qū)間的記錄才返回--
if lower<=index and upper>=index then
return next pnam||pno;
end if;
fetch $1 into pnam,pno;
index:=index+1;
--超過upper后,函數(shù)返回--
if index>upper then
return;
end if;
end loop;
end
$$language plpgsql;
select top100cur('abc');--創(chuàng)建一個(gè)名字為abc的游標(biāo)
-- fetch all in abc;--測試游標(biāo)
select * from from2cur('abc',2,5);
本文出自:億恩科技【www.riomediacenter.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|