function return table etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
function return table etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Şubat 2013 Perşembe

Oracle tablo döndüren fonksiyon

Aşağıdaki adımları sırayla uygulayacağız.


1.Oracle Type oluşturma
create or replace type ornekType as object (
i number,
n varchar2(30)
);

2.Oracle Nested Type oluşturma
create or replace type Ornek_nested_table as table of ornekType;
3.Fonksiyon oluşturma
create or replace function ornekFonksiyon return Ornek_nested_table as
  temp_tab   Ornek_nested_table;
begin
  temp_tab:= Ornek_nested_table();
  temp_tab.extend;
  temp_tab (temp_tab.count) := ornekType(1, 'Ahmet');
  temp_tab.extend;
  temp_tab (temp_tab.count) := ornekType(2, 'Ayşe');
  temp_tab.extend;
  temp_tab (temp_tab.count) := ornekType(3, 'Hasan');
  return temp_tab;
end ornekFonksiyon;
4.Oluşturulan tabloyu sql içerisinde kullanmak
select * from table(ornekFonksiyon);
sql sonucu
1 Ahmet
2 Ayşe
3 Hasan



Fonksiyonun parametreli hali.Fonksiyona kaydın id’si parametre ile verilerek kaydın getirilmesi
create or replace function ornekFonksiyon2(
  personel_id in number
)
return Ornek_nested_table as
  temp_tab Ornek_nested_table;
begin
  select 
  cast(
  multiset(
    select 
      id, name
    from 
      personel
    where id= personel_id)
    into
      temp_tab
    from 
      dual;
  return temp_tab;
  
end ornekFonksiyon2;
Sql'i bu şekilde olur.Sonucu "1 Ahmet"
select * from table(ornekFonksiyon2(1));