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;
 $$

 

Loading