MySQL veritabanında Parametreli Stored Procedure Oluşturma

Bu yazımızda MySQL veritabanında Stored Procedure oluşturma işleminin parametreli olarak nasıl yapıldığını inceleyeceğiz. Daha önceki yazılarımızda parametresiz olarak stored procedure oluşturmuştuk. Aşağıdaki yazımızı inceleyebilirsiniz.

MySQL veritabanında Parametresiz Stored Procedure Oluşturma


Daha önce personeldb adında bir veritabanı oluşturup içinde tblpersonel tablosu oluşturmuş ve birkaç örnek girmiştik. Yine aynı veritabanını kullanacağız. 



Parametreli Stored Procedure Yazma

Bu kısımda Saklı yordamımız “tc” parametresini alarak istediğimiz personelin tüm bilgilerini döndürecek. Yeni saklı yordam oluşturup aşağıdaki kodları yazıyoruz.  Burada giriş parametresinin adını ve tipini tıpkı programlama dillerinde olduğu gibi belirtiyoruz.  IN parametresi sadece giriş parametreleri için, OUT çıkış parametreleri için, INOUT ise hem giriş hem de çıkış parametesi gibi düşünebiliriz.

CREATE DEFINER=`root`@`localhost`
PROCEDURE `personel_getir`(IN tc VARCHAR(11))
BEGIN

  select * FROM tblpersonel WHERE TCKIMLIK=tc ;

END


Burada sadece tc parametresi giriş amacıyla kullanılacağı için IN yazdık. Parametre olarak yazacağımız değişken isminin tablomuzdaki alan ismiyle benzerlik göstermesine dikkat edelim, fakat birere bir aynı isimde olmak zorunda değildir.

Oluşturduğumuz personel_getir() ismindeki saklı yordamı aşağıdaki gibi çağıyoruz. Değişken tanımlarken, SET yazdıktan sonra, değişken isminin önünde @ kullanmaya dikkat ediyoruz,  @tc, @adi, @soyadi  gibi. Değişken tanımlarken programlama dillerinde olduğu gibi Türkçe karakterler kullanmamaya dikkat ediyoruz.  Daha sonra CALL ile saklı yordamımıza parametre geçirerek aşağıdaki gibi çağırıyoruz.

SET @tc=12346;
CALL personeldb.personel_getir(@tc);


Yukarıdaki çağrımı Query içinde yazıp, Şimşek simgesine tıklayarak çalıştırdığımızda sorgumuzun sonucu aşağıdaki gibi olacaktır. 



Aşağıdaki yazılarımızı da okuyabilirsiniz.


Bookmark and Share