İnsanoğlu hala tüm bilgisayarların en alışılmadık olanıdır. Jhon F.Kennedy
30 Ekim 2016 Pazar
SQL'de Değer Döndüren Stored Prosedürleri:
PostgreSql'de Tablo Döndüren Stored Prosedürleri:
- Bilindiği üzere stored prosedürleri, uygulamada çalıştırmak istediğimiz tüm sql sorguların fonksiyonel şekilde ve modüler olarak saklandığı yapılardır, ayrıca sorguların veritabanı yönetim sisteminde derlendiğinden fark edilir derecede uygulamıza performans sağlayacaktır. Veritabanı ile senkronize çalışması gereken uygulamalarımızın vazgeçilmezi olan stored prosedürlerinden tablonun kendisini döndüren türünü aşağıdaki örnek üzerinden anlatacağım.
CREATE OR REPLACE FUNCTION wfprocesser() -- wfprocesser adında fonksiyon tanımlama
RETURNS table(idprocess character varying(50),nmprocess character varying(255),idobject character varying(50),nmuserstart character varying(255)) ---RETURNS table() ile tanımladığımız fonksiyonun geriye tablo türünde bir değişken döndüreceğini belirtmiş oluyoruz. Örnekte olduğu gibi table() değişkeninin içerisine tanımladığımız kolon isimleri veritabanındaki hangi tablodan bilgi çekmek istiyorsak değişken tipleriyle beraber o tablonun kolon isimleri, kolon sayı ve sırası ile birebir aynı olması gerekmektedir.
AS
$BODY$
BEGIN
--- benim veri çekmek istediğim tablo kolon isimleri ve sırası ile aşağıdaki gibidir.
return query SELECT
DISTINCT(WFPROCESS.IDPROCESS),WFPROCESS.NMPROCESS,WFPROCESS.IDOBJECT, WFPROCESS.NMUSERSTART FROM WFPROCESS JOIN WFHISTORY ON WFPROCESS.IDOBJECT=WFHISTORY.IDPROCESS;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
fonksiyonu yukarıdaki gibi tanımladıktan sonra veritabanı yönetim sisteminin sql konsolu üzerinde
select * from wfprocesser() şeklinde sorgu yazdığımızda wfprocesser() fonksiyonunun döndürmüş olduğu tabloya erişim sağlamış olduğunuzu göreceksiniz. Aynı sorguyu herhangi bir yazılım dilinde de aynı şekilde kullanmanız mümkündür. Böylece içinde döngülerin de olabileceği çok karmaşık algoritmaların olduğu bunun gibi fonksiyonların döndürdüğü sonuçlara basit bir tabloymuş gibi erişim sağlayabiliyoruz. Umarım işinize yaramıştır.
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder