pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Maciej Piekielniak <piechcio@isb.com.pl>
To: pgsql-sql@postgresql.org
Subject: Re: cursor and for update
Date: Tue, 28 Mar 2006 11:13:03 +0200
Message-ID: <1265912543.20060328111303@isb.com.pl> (raw)
In-Reply-To: <4428866C.4000404@gmail.com>
References: <1466365196.20060328013531@isb.com.pl>
	<4428866C.4000404@gmail.com>

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@isb.com.pl




view thread (4+ messages)  latest in thread

Message-ID: <1265912543.20060328111303@isb.com.pl>
Permalink:  ../1265912543.20060328111303@isb.com.pl/
Also on:    postgresql.org/message-id/1265912543.20060328111303@isb.com.pl

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: piechcio@isb.com.pl
  Subject: Re: cursor and for update
  In-Reply-To: <1265912543.20060328111303@isb.com.pl>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox