PostgreSQL Function Nedir? Nasıl Kullanılır?
PostgreSQL Function Nedir? Nasıl Kullanılır?, programlama dillerindeki işlemler gibi,PostgreSQL de kullanıcı tanımlı işlemler de parametreleri kabul eden, karmaşık bir hesaplama gibi bir işlem gerçekleştiren ve bu işlemin sonucunu değer olarak döndüren plpgsql komutudur. Dönüş değeri, tek bir scaler değer veya bir sonuç seti olabilir.
SQL dillerinde bazı hazır fonksiyonlar sunulmaktadır. Bunları Ön Tanımlı Fonksiyonlar başlığının altında anlatmıştık.
Fonksiyonlar procedurlerden farklı olarak call, select*from view_adi gibi değil select fonksiyon ismi olarak çağrılır.
Örnek olarak parametre olarak girilen iki sayının toplamını veren sayitoplama adında fonksiyon yazalım
create function sayitoplama(sayi1 int,sayi2 int)
returns integer
language plpgsql
as
$$
declare
sonuc integer;
begin
sonuc:=sayi1+sayi2;
return sonuc;
end;
$$;
Yukarıda belirtilen fonksiyonumuzdan biraz bahsedelim.
create function sayitoplama(sayi1 int,sayi2 int)
returns integer
language plpgsql
as
$$
declare
sonuc integer;
begin
sonuc:=sayi1+sayi2;
return sonuc;
end;
$$;
- create function sayitoplama(sayi1 int,sayi2 int) : create functiondan sonra fonksiyon ismi ve parantezler içerisinde verilen değişken isimlerini ve bu değişkenlerin veri tiplerini giriyoruz.
- returns integer: Fonksiyon sonucunda dönecek olan veri tipini yazıyoruz.
- language plpgsql :Fonksiyonda kullanılacak olan dili seçiyoruz.
- declare :Bu kısımda fonksiyon içerisinde kullanacağımız değişken adını ve veritipini giriyoruz.
- begin-end : Begin end bloğu arasında yapılacak işlemler için gerekli plpgsql komutlarını yazıyoruz.
Büyük harfle girilen değeri küçük harfle yazılsın ve içerisinde ı,ş,ç,ö,ğ,ü geçen harfleri sırasıyla i,ş,ö,g,u harflerine çeviren bir fonksiyon yazalım.
CREATE OR REPLACE FUNCTION TR_karakter ( metin VARCHAR(100) )
RETURNS VARCHAR(100)
LANGUAGE plpgsql
AS
$$
DECLARE
d2 VARCHAR(100);
BEGIN
d2 =metin;
d2 = LOWER(d2);
d2 = REPLACE(d2,'ı','i');
d2 = REPLACE(d2,'ş','s');
d2 = REPLACE(d2,'ç','c');
d2 = REPLACE(d2,'ö','o');
d2 = REPLACE(d2,'ğ','g');
d2 = REPLACE(d2,'ü','u');
return (d2);
END;
$$