Received: from trends.net (root@clio.trends.ca [209.47.148.2]) by hub.org (8.9.3/8.9.3) with ESMTP id JAA26576; Thu, 5 Aug 1999 09:46:19 -0400 (EDT) (envelope-from attika@elender.hu) Received: from mail.elender.hu (bendeguz.elender.hu [194.143.224.1]) by trends.net (8.8.8/8.8.8) with ESMTP id FAA26364; Thu, 5 Aug 1999 05:34:35 -0400 (EDT) Received: from attika95 (d63-5210-bp.elender.hu [194.143.226.127]) by mail.elender.hu (8.9.1/8.9.1) with SMTP id LAA24411; Thu, 5 Aug 1999 11:34:30 +0200 (MET DST) Message-Id: <199908050934.LAA24411@mail.elender.hu> From: "Kuti Attila" To: questions@postgresql.org, docs@postgresql.org Date: Thu, 5 Aug 1999 11:36:18 +0200 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: cursors in plpgsql function?? Reply-to: attika@elender.hu Priority: normal X-mailer: Pegasus Mail for Win32 (v3.11) Hi! I have problem with declaring a cursor for a query in a plpgsql. I got compile error, and parse error at or near cursor. Here my function for a trigger: What can be the problem? Thanks a lot Attila create function p_kotogep() returns opaque as ' declare ajanlid ajanlati_konyv_p.ajanlat_id%TYPE; userid felhasznalo.user_id%TYPE; megidop timestamp; termekid termek.termek_id%TYPE; menny portfolio.szabad_db%TYPE; arr portfolio.szabad_db%TYPE; iran ajanlati_konyv_p.irany%TYPE; erv timestamp; hany int4; piar bool; aktar termek.arfolyam%TYPE; begin work; select count(ajanlat_id) into hany from ajanlati_konyv_p; -- SOMEWHERE HERE I GET ALWAYS ERROR declare ajanlatok cursor for select * from ajanlati_konyv_p; for i in 1..hany loop fetch next from ajanlatok into ajanlid, userid, megidop, termekid, menny, arr, piar, iran, erv; aktar= p_aktar(termekid); if setup_olv(1) then -- arjegyzovel jatszunk if iran = 1 then -- vetel if aktar <= arr then insert into kotes_naplo_p (vevo_id, elado_id, termek_id, ar, mennyiseg, szabad_valt) values (userid, 1, termekid, arr, menny, trktsg (menny, arr, 1) ); delete from ajanlati_konyv_p where ajanlati_id = ajanlid; else end if; else if aktar >= arr then insert into kotes_naplo_p (vevo_id, elado_id, termek_id, ar, mennyiseg, szabad_valt) values (1, userid, termekid, arr, menny, trktsg (menny, arr, 1) ); delete from ajanlati_konyv_p where ajanlati_id = ajanlid; else end if; end if; end if ; -- arjegyzovel jatszunk vege end loop; close ajanlatok; commit work; return NULL; ; ' language 'plpgsql'; trigger paj_kot on ajanlati_konyv_p; trigger paj_kot after insert on ajanlati_konyv_p for each row execute procedure p_kotogep(); attika@elender.hu http://www.bke.hu/~attika