From: | Volkan YAZICI <yazicivo(at)ttnet(dot)net(dot)tr> |
---|---|
To: | Ahmet <corsairsoft(at)gmail(dot)com> |
Cc: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: Öneri |
Date: | 2006-03-25 16:41:48 |
Message-ID: | 20060325164148.GB483@alamut |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
On Mar 25 04:02, Ahmet wrote:
> procedure ile belirli şartları sağlayan bir tek satır döner.
> birden çok satır istediğinizde zaten kayıt seti hatası verecektir.
Bu yanlış bir bilgiye nereden vardınız bilmiyorum ama kesinlikle böyle
bir şey söz konusu değil. Prosedürler ile de birden fazla satırı çok
rahatlıkla döndürebilirsiniz. Basit bir örnek olması açısından aşağıdaki
kod parçasını göz önüne alabilirsiniz.
BEGIN;
CREATE FUNCTION return_row() RETURNS SETOF integer AS $$
DECLARE
val integer;
BEGIN
FOR val IN SELECT (S.i * 3) AS mycol FROM generate_series(1, 3) AS S(i)
LOOP
RETURN NEXT val;
END LOOP;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
SELECT * FROM return_row();
-- return_row
-- ------------
-- 3
-- 6
-- 9
-- (3 rows)
ROLLBACK;
> 1 - İşlem gerektiren kısımları procedürler şeklinde tanımlamanız
> 2 - Kayıt çekerken ise view veya select sorguları ile işlem yapmanız.
Bence böyle bir öneride bulunmadan önce dereyi görmenin en doğrusu
olduğu yönünde düşüncem. Aslında yukarıdaki düşüncenin, prosedürler
satır döndüremez fikri ile yola çıkıldığından, baştan yanlış olma
ihtimali çok yüksek. Fakat yine de kimi durumlar için uygulanabilirliği
olabilir.
İyi çalışmalar.
From | Date | Subject | |
---|---|---|---|
Next Message | Ahmet | 2006-03-25 17:29:27 | Öneri |
Previous Message | Devrim GUNDUZ | 2006-03-25 15:16:19 | Re: freebsd de postgresql |