|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 8. Yordamsal dil (PSQL) > 8.3 Atama ve yordam çağrısı |
Atama = ile yapılır, := ile değil. (:= yalnızca
EXECUTE STATEMENT'ın adlandırılmış parametrelerinde kullanılır.)
Üst seviyede bir yordam call Foo.Bar(…); ya da
execute procedure Foo.Bar(…); ile çağrılır; çıplak Foo.Bar(…) yazımı
üst seviyede sözdizimi hatasıdır. Blok içinde çıplak Foo.Bar(…);
yazılır; call isteğe bağlı bir önektir ve aynı çağrı yoluna gider.
Blok içinde ayrıca şu biçim vardır:
EXECUTE PROCEDURE <yordam> [ ( … ) | <argüman> [, …] ] [RETURNING_VALUES <hedefler>]Firebird'deki gibi argümanlar parantezsiz de yazılabilir (execute procedure p 'X', 1, 2;);
deyimin sonu listenin de sonudur ve yazılmayan öndeğerli argümanlar öndeğerini alır. Aynı yazım blok
dışında, üst düzey deyim olarak da geçerlidir. RETURNING_VALUES listesinin öğe sayısı
yordamın çıkış sayısına eşit olmalı ve her hedef ilgili çıkışın tipini almalıdır.
Üst düzey EXECUTE PROCEDURE (ve CALL), RETURNING_VALUES
yazılmadığında yordamın çıkış değerlerini sonuç kümesi olarak döndürür (Firebird gibi):
SUSPEND eden yordamda her SUSPEND bir satırdır, etmeyende gövde bitince
tek satır. İstemci sürücüleri (FireDAC ExecProc) çıkış parametrelerini bu satırdan
doldurur. Blok içindeki çağrı küme üretmez.
create procedure p_topla(a integer, b integer) returns (toplam integer)
as begin toplam = a + b; end;
execute procedure p_topla(2, 3); -- TOPLAM: 5