Re: cursor and for update
От | Maciej Piekielniak |
---|---|
Тема | Re: cursor and for update |
Дата | |
Msg-id | 1265912543.20060328111303@isb.com.pl обсуждение исходный текст |
Ответ на | Re: cursor and for update (Wiebe Cazemier <halfgaar@gmail.com>) |
Ответы |
Re: cursor and for update
|
Список | pgsql-sql |
Hello Wiebe, Tuesday, March 28, 2006, 2:42:20 AM, you wrote: >> WC> Fist, what's the error you get? ERROR: missing ".." at end of SQL expression CONTEXT: compile of PL/pgSQL function "uporzadkuj_reguly" near line 7 WC> Second, what does "rekord" do? You don't seem to use it. Yes, i don't need it. WC> Third, can you quote the language? I always say plpgsql without the WC> quotes, but I'm not sure if using quotes is not allowed (and I'm too WC> lazy to check :)). WC> Also, why don't you have a "RETURNS VOID" function, which you can end WC> with "RETURN;" OK WC> But what you might be stuck on is that you have a column and variable WC> with the same name. Try to give the variables "tabela" and "lancunch" WC> different names. OK WC> Lastly, if you use postgres 8, you can quote your function with $$ WC> instead of ' (meaning ...$$ AS DECLARE BEGIN END;$$...), so that you WC> won't get the ugly syntax highligting that most editors will give you WC> when quoting with '. I have postgres 7.4 create or replace function uporzadkuj_reguly(text,text) RETURNS VOID AS ' DECLARElicznik integer:=1; reguly CURSOR FOR SELECT * from firewall ORDER BY id_firewall WHEREtabela=$1 and lancuch=$2 for UPDATE; BEGINfor i in reguly LOOP UPDATE firewall SET id_firewall=licznik WHERE CURRENT OF reguly; licznik:=licznik+1;END LOOP; return; END;' LANGUAGE 'plpgsql'; -- Best regards,Maciej mailto:piechcio@isb.com.pl
В списке pgsql-sql по дате отправления: