From: | Maciej Piekielniak <piechcio(at)isb(dot)com(dot)pl> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: cursor and for update |
Date: | 2006-03-28 09:13:03 |
Message-ID: | 1265912543.20060328111303@isb.com.pl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
'
DECLARE
licznik integer:=1;
reguly CURSOR FOR SELECT * from firewall ORDER BY id_firewall WHERE
tabela=$1 and lancuch=$2 for UPDATE;
BEGIN
for 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(at)isb(dot)com(dot)pl
From | Date | Subject | |
---|---|---|---|
Next Message | Wiebe Cazemier | 2006-03-28 09:59:13 | Re: cursor and for update |
Previous Message | Achilleus Mantzios | 2006-03-28 08:16:06 | Proposed dbmirror change |