create type deneme is object (isim varchar2(10), soyisim varchar2(10));
Yukarıdaki nesneyle sürekli yaratacağımız tablonun yapısını oluştururuz.
Bundan sonra bu "object" ile çıkaracağımız tablo tipini oluştururuz.
create type deneme_tab is table of deneme;
Bu şekilde bir tablo tipi oluşturmuş oluruz. "deneme_tab" artık bizim için bir değişken tipi haline gelmiştir. Yani " abc deneme_tab" diyerekten deneme_tab biçiminde adı abc olan bir tablo oluşturmuş oluruz.
create or replace function deneme_fonk return deneme_tab
is
abc deneme_tab := deneme_tab();
//deneme_tab tipinde bir tablo yaratırız.
n integer := 0;
begin
for a in (select isim,soyisim from musteriler)
//Buradaki cursor'da musteriler tablosundan isim ve soyisim
//bilgileri alınır
loop
abc.extend;
n := n + 1;
abc(n) := deneme(a.isim,a.soyisim);
//Burada ise abc'nin oluştuğu data tipinden bir kayıt
// atmaktayız.
end loop;
return abc;
end;
/
Yukarıdaki kodumuzda deneme_fonk adlı deneme_tab tipinde bir tablo döndüren bir fonksiyon bulunmaktadır. Öncesinde daha önceden yarattığımız tablo yapısında bir tablo yarattıktan sonra musteriler adlı bilgileri içeren tablodan örnek kayıtları alıp buna göre abc adlı deneme tablomuza ekletiriz.
select * from table (deneme_fonk);
Yukarıdaki şekilde de tablomuzu fonksiyonumuzdan çekeriz.
Hiç yorum yok:
Yorum Gönder