Hurriyet

7 Kasım 2013 Perşembe

PL\SQL Örnekleri: Tablo Geri Döndürmek - Bir Fonksiyondan Tablo Nasıl Döndürülür?

Bir fonksiyondan tablo döndürmek için önce bu tablonun temsil edileceği bir "object" yaratmamız gerekir. Bunun için aşağıdaki syntax'ı kullanaraktan örneğimiz için bir tane yaratırız.

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