Oracle da tablo dönderen bir fonksiyon yazmak için ilk olarak bir nesne(object) oluşturuyoruz. Bu nesne bizim tablomuzdaki döndürmek istediğimiz alanların bulunduğu bir nesne olmalı.
Create or Replace Type satirlar as OBJECT( id NUMBER(2),ad VARCHAR2(20), soyad VARCHAR2(25));
Nesnemizi tanımladıktan sonra elemanları bu nesneden oluşan bir tablo tanımlamamız gerekiyor.
Create Or Replace Type tablomuz AS TABLE OF satirlar;
Bunu da oluşturduktan sonra artık fonksiyonumuzu yazabiliriz.
Create Or Replace Function fonksiyonumuz (v_id in NUMBER)Fonksiyonumuzu Select * from table(fonksiyonumuz(5)) şeklinde çağırabiliriz.
RETURN tablomuz
IS
donendeger tablomuz := NEW tablomuz();
BEGIN
FOR satir IN (SELECT id,adi,soyadi FROM tabloadı WHERE id = v_id)
LOOP
donendeger.EXTEND;
donendeger(donendeger.COUNT) := new satirlar( satir.id, satir.adi, satir.soyadi);
END LOOP;
RETURN donendeger;
END;
Hiç yorum yok:
Yorum Gönder