8.3 Atama ve yordam çağrısı

<< İç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.)

Dikkat

Ü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