Normalde burada yapacağımız işlemleri sqlserver, mysql ve oracle sistemlerinde genellikle procedure tarafında yapıyoruz. Belli bir sorgu sonucunda gelen table sonucu ekranda gösterme işlemini malesef postgresql tarafında procedure içinde yapamıyoruz. Çünkü procedure tarafında geriye değer dondurme olayı burada yok sadece ekrana notice ile yazdırabiliyoruz , bunun içinde tek ifade olması gerek bir table veri truunde verileri listeleyemiyoruz. Eğer bu şekilde bir değer döndürmesini istediğimiz bir yapı var ise bunu postgresql tarafında fonksiyon olarak yazmalıyız.
Örneğin; film adı verildiğinde filmde oynayan oyuncuların listesini istedğimiz bir fonksiyon yazmak isteseydik bunu sql serverda procedure olarak yapabilirdik. Burada ise fonksiyon olarak yazmak zorundayız. O zaman ilk örnek için kodumuzu yazmaya başlayalım.
create function film_aktor(film_adi varchar)
returns table( ad varchar, soyad varchar)
language plpgsql
as $$
begin
return query select first_name, last_name from film fl
inner join film_actor fa on fa.film_id=fl.film_id
inner join actor ac on ac.actor_id=fa.actor_id
where title=film_adi;
end;
$$;
select * from film_aktor('Chamber Italian');
Hiç yorum yok:
Yorum Gönder