ben

OMÜ , Bilgisayar Mühendisliği, 13'

3 Mart 2022 Perşembe

Kullanıcı Tanımlı Fonksiyonlar

    Fonksiyonların procedurelerden farkı geriye değer döndürülebiliyor olmasıdır. ve aslında diğer veritabanı sistemlerinde procedurelerde bir sorgu sonucunu rahatlıkla yazdırılabiliyor iken, postgresql yapısında procedurelerde sadece ekrana bilgi olarak veriyi yazdırabiliyoruz. Postgresql veri tabanında bir sorgu sonucundaki bir listeyi ekrana yazan procedure yerine fonksiyon kullanabiliyoruz. Diğer veri tabanı sistemlerinde daha cok procedure yapılarını kullanırken, postgresql veri tabanı bu yoğun kullanımı fonksiyon üzerine yoğunlaştırmış durumda. Burada basit bir kaç fonksiyon yazdıktan sonra sorgu sonucunda liste olarak dönen fonksiyonlara da örnek vermiş olalım.

Temel YAPI:

create  function fonksiyon_ismi(parametre parmetre_turu)
returns geri_donen deger_turu
language plpgsql
as $$
declare
 fonksiyon içinde kullanılacak değişkenlerin tanımlanması
begin
  ---- fonksiyon işlemleri
   return  geri_dönen_değişken
end $$;


ÖRNEK: Yariçapı verilen dairenin alanını hesaplayan fonksiyon

create  function daireAlan(yaricap float)
returns float
language plpgsql
as $$
declare
 alan float;
begin
   alan:= round(power(yaricap,2)*pi());
   return alan;
end $$;

Fonksiyonu kullanmak için diğer hazır fonksiyonlar gibi select kısmında kullanabiliriz.

select daireAlan(2);



ÖRNEK: Verilen sayı asal ise 1 değilse 0 değerini döndüren fonksiyon yazınız.

drop function if exists asalmi;
create  function asalmi(sayi int)
returns varchar
language plpgsql
as $$
declare
   sayac int:=2;
   asal varchar:='asal';
begin
  while sayac<sayi loop
     if mod(sayi,sayac)=0 then
        asal:='asal değil'
        exit;
     end if;
     sayac:=sayac+1;
  end loop; 
return asal;  
end $$;



select asalmi(4);


NOT: sql serverda döngü break ile kırılırken burada exit ile kırılır.


Hiç yorum yok: