2009-08-27 14 views

cevap

7

O onu aramak için kullanılan SELECT var, değer döndüren fonksiyon değil. Herhangi bir satır döndürmezse, işlevinizi çalıştırmaz.

4

Sadece gayet iyisin. Başka bir şey eklemeniz gerekmez.

Satır sonucu boş, bu nedenle boş bir dönüş.

Bunun hakkında yapabileceğiniz bir şey düşünmüyorum. Benim boş işlevlerimi kontrol etmek hepsi seninki gibi.

, $$ olarak void değerini döndürür ve kod bloğunda hiçbir return ifadesi döndürmez.

Basit fonksiyonu: Şimdi

create function x() returns setof record as $$ 
begin 
return; 
END; 
$$ language plpgsql; 

şunları yapabilirsiniz:

durumda
# select x(); 
x 
--- 
(0 rows) 

çalışmıyor Sen elde edebilirsiniz

+1

Ama nasıl can Bu yöntem çağrılabilir? – Peymankh

+0

SELECT * FROM void_function(); –

+0

'PERFORM void_function(); 'kullanmak daha kolay olabilir. – Cromax

6

set-döndüren fonksiyonların kötüye kullanarak "hiçbir şey döndürdü" Sizin için (özür dilerim, 8.5 kullanıyorum), şu yaklaşımı deneyin:

parametreler alakasız ama:

  • İhtiyacınız> Onlar

ismini vermek var

  • 1 tanesi Ve şimdi yapabilirsiniz:

    # select * from x(); 
    o1 | o2 
    ----+---- 
    (0 rows) 
    
  • İlgili konular