Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Использование Cursor а


Автор: bax 1.8.2011, 14:25
Народ! Подскажите в каком порядке можно использоват курсор в Постгрессе?
мануалах ничегно конкретного нет, видно что не программист написал эти постгрессовские мануалы!
в Оракле было выход из цикла курсора с проверкой 
NOTFOUND (FETCH, loop EXIT WHEN NOTFOUND end loop CLOSE) или 
цикл с использованием курсора (FOR x in cursor1 LOOP ... END LOOP)
Но в POSTGRE/SQL не знаю как использовать, потому что нормального учебника нет!
а этот сайт http://www.postgresql.org/docs/9.0/static/index.html  написано ПЛОХО!

Автор: bax 5.8.2011, 13:07
 проблему можно считат решенным!
предлагаю демонстрационный код, чтобы кому-нибуд пригодился

Код

DECLARE x numeric;
DECLARE y numeric;
DECLARE xy record;
DECLARE s numeric;
begin
 x:=0;y:=0; s:=0;
 for xy in 
   (select lat as x1, lon as y1 from locat where unit_id=$1 and dtim between $2 and $3 order by dtim) --неявный курсор
   LOOP
    if (x>0) then s:=s+mas(x,y,xy.x1,xy.y1);end if;
    x:=xy.x1; y:=xy.y1;
   end LOOP;
 return round(s,3);
end

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)