Stored Procedure Parametre Kullanmak
Yordamları hazırlarken yordam içerisine değer göndermek için giriş parametreleri kullanılır. Kullanım şekli stored procedure oluşturma ile aynıdır. Parametre alan saklı y ordamların çalıştırılması için kullanım şekli aşağıda ki gibidir.
1 |
EXEC YORDAM_ISMI PARAMETRE1, PARAMETRE2, .... |
1 2 3 4 5 6 |
CREATE PROCEDURE GETIR_BAKIYE(@BAKIYE MONEY=NULL) --BAKIYE isimli parametre MONEY tipinde olsun AS SELECT * FROM HESAPLAR WHERE BAKIYE<@BAKIYE --BAKIYE sütununda @BAKIYE parametresinden küçük kayıtları getir GO GETIR_BAKIYE 5200 --GETIR_BAKIYE yordamına 5200 parametresini yolla |
Yukarıda ki örnekde yordam 1 adet parametre almıştır. Eğer iki veya fazla parametre alması gerekseydi aralarında virgül işareti konmak zorunadydı. Parametre ile gelen değeri select sorgusunda kullanıldı. En son yordama parametre yazılarak yordam çalıştırıldı. Ekran çıktısı aşağıda ki gibi olacaktır.
Stored Procedure’lerde Çıkış Parametresi Kullanmak
C#, Java gibi dillerde metotların yaptığı değerlerin kullanıcıya gönderilmesi için RETURN kelimesi kullanılırdı. Return kelimesi ile metotdan dönen değer herhangi bir değişkene atamamızı sağlardı. Saklı yordamlarda bunu yapmak için OUTPUT ifadesini kullanacağız. Metotlara tam olarak benzemesede mantıken yakındır. OUTPUT ifadesini yordamda parametre tanımlarken ve yordam çağırılırken parametre olarak gönderilen ifadenin yanında kullanılır.
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE PROCEDURE HESAP_BUL --HESAP_BUL adında yordam oluştur (@HESAP_ARALIK1 INT, @HESAP_ARALIK2 INT, @HESAP_NO1 INT OUTPUT, @MIKTAR1 MONEY OUTPUT) --HESAP_NO1 ve MIKTAR1 parametreleri dışarıya değer taşısın OUTPUT AS SELECT @HESAP_NO1=HESAP_NO, @MIKTAR1=BAKIYE FROM HESAPLAR WHERE HESAP_NO>@HESAP_ARALIK1 AND HESAP_NO<@HESAP_ARALIK2 --HESAP_NO, HESAP_ARALIK1'den büyük ve HESAP_ARALIK2'den küçük verileri getir. Gelen verilerin HESAP_NO sütununu HESAP_NO1 output parametresine, BAKIYE sütununu MIKTAR1 parametresine ata GO --sunucuya gönder DECLARE @HESAP_NO2 INT --HESAP_NO2 isminde değişken tanımla DECLARE @MIKTAR2 MONEY --MIKTAR2 adında değişken tanımla EXECUTE HESAP_BUL 1000,5000, @HESAP_NO2 OUTPUT,@MIKTAR2 OUTPUT --1000 VE 5000 değerini parametre olarak gönder, HESAP_NO2 ve MIKTAR2 OUTPUT parametrelerine ise yordamda ki OUTPUT parametrelerinin tuttuğu değerleri ata PRINT CAST(@HESAP_NO2 AS VARCHAR(5)) +' - ' + CAST(@MIKTAR2 AS VARCHAR(10)) --HESAP_NO2 ve MIKTAR2 parametrelerini VARCHAR tipine dönüştür(CAST) |
Yukarıda ki T-SQL kodlarında HESAP_BUL adında bir yordam ve bu yordama ait 4 parametre tanımlanmıştır. Parametrelerin yanında OUTPUT yazanlar yordam içerisinde bunlara değer atanacağı ve bu değerlerin dışarıya taşınacağı anlamını taşımaktadır. SELECT sorgusunda da bu atamaların yapıldığını görebilirsiniz. EXECUTE HESAP_BUL ile yordam çalıştırılmış. OUTPUT ile yazılan değişkenler ise yordamda elde edilen değerlerin değişkene atanmasını sağlamaktadır. PRINT ile ekrana HESAP_NO ve BAKIYE bilgileri aşağıda ki gibi yansıtılmaktadır.