PLSQL Değişken Tanımlama | PLSQL Variables

PLSQL Değişken | PLSQL Variables

 

Bu yazıda, PLSQL değişken konusunu ve bunların nasıl etkili bir şekilde kullanılacağı hakkında bilgi edineceksiniz.

PLSQL’de değişken, belirli bir veri türünün değerini depolayan depolama yeri olarak adlandırılır.
Değişkenin değeri program üzerinden değişir.
Bir değişkeni begin-end bloğu içerisinde kullanmadan önce, declare kod bloğu bölümünde tanımlamalıyız.

PLSQL Değişken Tanımlama

PLSQL’de değişken tanımlamanın syntaxı aşağıdaki gibidir.

degisken_adi veritipi [NOT NULL] [:= ilk_deger]; 
 Örnek : ilk_degiskenimiz number NOT NULL := 0;

İlk önce değişkenin adını belirtiriz. Değişkenin adı, örneğin total_sales, credit_limit ve sales_revenue gibi mümkün olduğunca açıklayıcı olmalıdır
ki yazdığımız kodu daha sonra düzenlemek isteyen bir diğer plsql developer kodumuzu rahatça anlayabilsin. Çünkü aynı durumla biz de karşılaşacağız. Çoğu zaman başka developerların yazdığı kod üzerinde değişiklikler veya eklemeler yapmak durumunda kalacağız.

İkinci olarak, değişken için uygun bir veri türü seçin, saklamak istediğiniz değerin türüne göre, örneğin sayı, karakter ve tarih. Maaş Tutarı gibi bir değer tutacaksak “number” , çalışan adı gibi bir değer tutacaksak “varchar2” tipini kullanmamız uygun olacaktır.

Aşağıdaki örneğimizde 3 farklı değişken oluşturacağız.

Declare
toplam_satislar number(15,2);
kredi_limiti number(10,0);
ilgili_kişi_ismi varchar2(255);
Begin
null;
End;

PLSQL Değişkenlerin Varsayılan Değerleri

Declare bloğunda bir değişken için varsayılan bir değer belirtiriz. Bir değişkene varsayılan bir değer atamak için, atama operatörünü (: =) veya DEFAULT anahtar sözcüğünü kullanırız.
Declare
urun_adi varchar2(1000) := 'Kuru üstü Pilav";
Begin
Null;
End;

Parantezler içerisindeki 1000 değeri urun_adi değişkeninin maksimum kaç karakterden oluşabileceğini tanımlar. Örneğin burada 1000 karakterlik bir ürün adı tanımlayabilirdik. Eğer 1000 değil de 5 yazsaydık, ‘Kuru üstü Pilav’ ifadesi 15 karakter olduğu için böyle bir plsql değişken ataması yapamazdık.

 

PLSQL Değişkenlerde Not Null kısıtlaması

NOT NULL kısıtlamasını bir değişkene uygularsanız, değişken NULL değeri kabul edemez. Ayrıca, NOT NULL kısıtlaması ile bildirilen bir değişken boş olmayan bir değere eşitlenmelidir. PLSQL sıfır karakter uzunluklu her değeri NULL olarak kabul eder.
Aşağıdaki örnek ilk önce, NULL kısıtlaması olan fatura_statusu adlı bir değişken bildirir. Ardından, değişkene sıfır olmayan bir değer (‘onaylandı’) atar.
Declare
fatura_statusu varchar2(20) NOT NULL := 'Onaylandı';
begin
fatura_statusu := '';
end;

 

Ardından fatura_statusu’ne  ,begin-end çalıştırılabilir kod bloğunda , karakter sayısı 0 olan bir değer atanmak istendiği için “ORA-06502 : numeric or value error” hatasını alırız. Bu  PLSQL değişkenleri NOT NULL olarak tanımlandığı için kesinlikle PLSQL kodunun hiçbir bölümünde karakter sayısı sıfır olan bir değere eşitlenemez.

PLSQL Değişkenlerde Değer Atama

Bir değişkene değer atamak için bildiğiniz gibi “:=” operatoru kullanılır.

DECLARE
renk_turu VARCHAR2(100) := 'Yeşil';
BEGIN
renk_turu := 'Sarı';
DBMS_OUTPUT.PUT_LINE(renk_turu);
END;

Kod bloğu çalıştırıldığında sonuç ‘Sarı’ dönecektir. Aşağıdaki örneğimizde bir plsql değişkenin değerini diğer bir değişkenin değeri olarak atayabiliriz.

DECLARE
renk_turu VARCHAR2(20) := 'Kahve';
icecek_turu VARCHAR2(20);
BEGIN
icecek_turu := renk_turu  ;
DBMS_OUTPUT.PUT_LINE(icecek_turu );
END;

Kod bloğu çalıştırıldığında sonuç ‘Kahve’ dönecektir.

 

PLSQL Değişkenlerde Anchored Tanımlamalar

Yazılımın Dili İngilizcedir arkadaşlar. Bu sebeple bazı gerekli gördüğüm terimleri İngilizce olarak bilmeniz sizin için daha çok anlam ifade edecektir.

Genellikle, declare içerisinde tanımlanan bir değişken değeri begin end blokları arasında bir select içerisinde where koşulunda kullanılır. Where koşulunda ise tabii ki bir tablo veya view içerisindeki bir kolon için şart belirtiriz.  Anchored tanımlamalar ile bir tablo içindeki kolonun veri tipi seçilmiş olur.
DECLARE
en_basarili_calisan calisan_tablosu.adi%TYPE;
en_basarili_calisanin_maasi calisan_tablosu.calisan_maasi%TYPE;
BEGIN
SELECT
adi, calisan_maasi
INTO
en_basarili_calisan, en_basarili_calisanin_maasi
FROM
calisan_tablosu
WHERE
basari_katsayisi = 100;
DBMS_OUTPUT.PUT_LINE(en_basarili_calisan || ': ' || en_basarili_calisanin_maasi );
END;

%TYPE Anchor’u ile bir tablodaki kolonun veri tipini seçmiş olduk. Bu veritipi her ne ise artık plsql’de değişkenin veri tipi de o olacaktır. Bu sayede eğer tablodaki bir kolonun veri tipi değişirse bu yazdığımız kodu değiştirmemiz gerekmez.

 

PLSQL SELECT INTO ile Değişkene Değer Atama

Select into deyimini az önceki örneğimizde kullanmamızın sebebi, Select sorgusundan dönecek olan adi kolonunun değerini “en_basarili_calisan” değerine, calisan_maasi kolonunun değerini “en_basarili_calisanin_maasi” değerine atamaktı.  Yani kısaca ;

en_basarili_calisan:=adi
en_basarili_calisanin_maasi:=calisan_maasi

Ayrıntılı Select Into Kullanımı Yazısı için TIKLAYIN.

PLSQL Constants | Sabitler

Sabit, değeri değişmeyen bir değişkendir. Bir sabit tanımlamak için değişkenin adını, CONSTANT anahtar sözcüğünü, veri türünü ve varsayılan değeri belirtiriz.

DECLARE
odeme_vadesi CONSTANT NUMBER := 45; -- days
odeme_statusu CONSTANT BOOLEAN := FALSE;
BEGIN
NULL;
END;

odeme_vadesi ve odeme_statusu değişkenleri tüm PLSQL kod bloklarında her ne olursa olsun hiçbir zaman değiştirilemez ve değişemez.

PLSQL Değişkenler  başlıklı yazımızın sonuna geldik. Daha faydalı yazılarda görüşmek dileğiyle 🙂

Önceki dersimiz için tıklayabilirsiniz.

Farklı kaynaklar için tıklayabilirsiniz.

 

PLSQL Değişken
PLSQL Değişken