Prosedürler ve Programlamadaki Fonksiyonlar
Procedures and Functions Programlamada, programcıların talimatları tek bir blokta gruplandırmasına izin verir ve program içinde çeşitli yerlerden çağrılabilir. Kodun anlaşılması daha kolay ve daha kompakt hale gelir. Değişiklikleri tek bir yerde gerçekleştirerek tüm kod etkilenecektir. Fonksiyonlar ve prosedürler yardımıyla; doğrusal ve uzun bir kod bağımsız bölümlere ayrılabilir. Çeşitli programlama dillerinin ve veritabanlarının kodlanmasında daha fazla esneklik sağlarlar.
İşlevler nelerdir?
İşlevler, bağımsız değişkenler olarak da bilinen parametreleri kabul etme yeteneğine sahiptir. Bu argümanlara veya parametrelere göre görevleri yürütürler ve verilen türlerin değerlerini döndürürler. Bunu bir örnek yardımıyla daha iyi açıklayabiliriz: Bir fonksiyon bir diziyi parametre olarak kabul eder ve bir veri tabanından ilk girişi veya kaydı döndürür. Bu tür karakterlerle başlayan belirli bir alanın içeriğini dikkate alır.
İşlev sözdizimi aşağıdaki gibidir:
CREATE OR REPLACE FONKSİYONU my_func
(p_name IN VARCHAR2:='Jack') varchar2'yi başlangıç olarak döndürür … bitiş
Prosedürler nelerdir?
Procedures, parametreleri veya argümanları kabul edebilir ve bu parametrelere göre görevleri yerine getirir. Bir prosedür parametre olarak bir dize kabul ederse ve belirli bir alanın içeriğinin bu karakterlerle başladığı veritabanındaki kayıtları içeren bir liste verirse.
Prosedürlerin sözdizimi aşağıdaki gibidir:
OLUŞTURMA VEYA DEĞİŞTİRME PROSEDÜRÜ my_proc
(p_name IN VARCHAR2:='Jack') olarak başlangıç … bitiş
Genel olarak, işlevlerde ve prosedürlerde bir parametrenin iletilmesinin iki yolu vardır; değere veya referansa göre. Parametre bir değer ile geçilirse; değişiklik, işlevin veya prosedürün gerçek değerini etkilemeden etkilenir.
Öte yandan, parametreler referanslar tarafından geçirilirse; bu parametrenin gerçek değeri, talimatlara göre kod içinde çağrıldığı her yerde değişecektir.
Prosedürler ve işlevler arasındaki fark
• Parametre prosedüre geçirildiğinde; herhangi bir değer döndürmezken bir işlev her zaman bir değer döndürür.
• Her ikisindeki en büyük farklardan biri, veritabanlarında prosedürlerin kullanılmaması, ancak işlevlerin bir veri tabanından değer döndürmede önemli bir rol oynamasıdır.
• Prosedürler birden fazla değer döndürebilir ve işlevler sınırlı değerler döndürebilir.
• DML işlemleri saklı yordamlarda kullanılabilir; ancak işlevlerde mümkün değildir.
• İşlevler yalnızca bir değer döndürebilir ve zorunludur, oysa prosedürler n veya sıfır değerleri döndürebilir.
• İşlevlerde hata işleme yapılamazken saklı yordamlarda gerçekleştirilebilir.
• Giriş ve çıkış parametreleri prosedürlerde geçirilebilirken, fonksiyonlar durumunda; sadece giriş parametreleri geçirilebilir.
• Fonksiyonlar prosedürlerden çağrılabilirken, bir fonksiyondan prosedür çağırmak mümkün değildir.
• İşlem yönetimi prosedürlerde düşünülebilir ve işlevler durumunda düşünülemez.