PL/SQL Operatörler
Oracle PL/SQL içerisinde çeşitli hesaplamalar yapmak için kullanılan aritmetik, ilişkisel, karşılaştırma ve string operatörleri hakkında bilgi yer alıyor.
Operatörler
Operatörler programlama dillerinde bir veya birden fazla değer arasında işlem yapan özel ifadelerdir.
PL/SQL çeşitli verileri üzerinde işlem yapmayı sağlayan operatörlere sahiptir.
- Aritmetiksel operatörler,
- İlişkisel operatörler
- Karşılaştırma operatörleri
- Mantıksal operatörler
- String operatörü
Aritmetiksel operatörler
Sayılar üzerinde toplama, çıkarma, çarpma ve bölme gibi temel sayısal işlemleri yapmayı sağlayan operatörlerdir.
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.put_line( 10 + 10);
DBMS_OUTPUT.put_line( 10 - 7);
DBMS_OUTPUT.put_line( 10 * 7);
DBMS_OUTPUT.put_line( 10 / 7);
DBMS_OUTPUT.put_line( 10 ** 3); -- üst alma
END;
İlişkisel operatörler
İki değeri karşılaştırarak operatör sonucuna göre BOOLEAN türünden TRUE veya FALSE değeri döndürür.
SET SERVEROUTPUT ON;
DECLARE
v_sayi1 number (2) := 10;
v_sayi2 number (2) := 20;
BEGIN
IF (v_sayi1 = v_sayi2) THEN
DBMS_OUTPUT.put_line('v_sayi1 ve v_sayi2 eşit.');
ELSE
DBMS_OUTPUT.put_line('v_sayi1 ve v_sayi2 eşit değil');
END IF;
IF (v_sayi1 < v_sayi2) THEN
DBMS_OUTPUT.put_line('v_sayi2 daha büyük.');
ELSE
DBMS_OUTPUT.put_line('v_sayi1 daha büyük.');
END IF;
IF ( v_sayi1 > v_sayi2 ) THEN
DBMS_OUTPUT.put_line('v_sayi1 daha büyük.');
ELSE
DBMS_OUTPUT.put_line('v_sayi2 daha büyük.');
END IF;
v_sayi1 := 3;
v_sayi2 := 7;
IF ( v_sayi1 <= v_sayi2 ) THEN
DBMS_OUTPUT.put_line('v_sayi2 eşit veya daha büyük.');
END IF;
IF ( v_sayi1 >= v_sayi2 ) THEN
DBMS_OUTPUT.put_line('v_sayi1 eşit veya daha büyük.');
END IF;
IF ( v_sayi1 <> v_sayi2 ) THEN
DBMS_OUTPUT.put_line('v_sayi1 ve v_sayi2 eşit değil.');
ELSE
DBMS_OUTPUT.put_line('v_sayi1 ve v_sayi2 eşit.');
END IF;
END;
Karşılaştırma operatörleri
Karşılaştırma operatörleri de ilişkisel operatörler gibi iki değer üzerinden işlem yapar ve BOOLEAN türünden TRUE veya FALSE değeri döndürür.
LIKE
Operatör SQL içerisinde yer alan LIKE gibi desene göre arama yapmak için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_mesaj VARCHAR2(100) := 'Merhaba ben Yusuf SEZER';
BEGIN
IF v_mesaj LIKE '%Yusuf%' THEN
DBMS_OUTPUT.put_line('Değer bulundu.');
ELSE
DBMS_OUTPUT.put_line('Değer bulunamadı.');
END IF;
END;
BETWEEN
Operatör SQL içerisinde yer alan BETWEEN gibi belirli bir aralığı sorgulamak için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_yas PLS_INTEGER := 75;
BEGIN
IF (v_yas BETWEEN 0 AND 5) THEN
DBMS_OUTPUT.put_line('Bebek');
ELSIF (v_yas BETWEEN 5 AND 12) THEN
DBMS_OUTPUT.put_line('Çocuk');
ELSIF (v_yas BETWEEN 12 AND 18) THEN
DBMS_OUTPUT.put_line('Genç');
ELSE
DBMS_OUTPUT.put_line('Diğer');
END IF;
END;
IN
Operatör SQL içerisinde yer alan IN gibi belirli değerleri sorgulamak için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_mesaj VARCHAR2(55) := 'bir';
BEGIN
IF (v_mesaj IN('istenmeyen', 'bir', 'mesaj') ) THEN
DBMS_OUTPUT.put_line('Bulundu.');
ELSE
DBMS_OUTPUT.put_line('Bulunamadı.');
END IF;
END;
IS NULL
Değerin NULL olup olmadığı kontrol etmek için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_mesaj VARCHAR2(55) := '';
BEGIN
IF v_mesaj IS NULL THEN
DBMS_OUTPUT.put_line('Mesaj boş.');
ELSE
DBMS_OUTPUT.put_line(v_mesaj);
END IF;
END;
Mantıksal operatörler
Mantıksal operatörler (AND, OR, NOT) bir veya birden fazla operatörü birbirine bağlamak için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_sonuc1 BOOLEAN := TRUE;
v_sonuc2 BOOLEAN := FALSE;
BEGIN
IF v_sonuc1 AND v_sonuc2 THEN
DBMS_OUTPUT.put_line('Her iki ifade doğru.');
ELSIF v_sonuc1 OR v_sonuc2 THEN
DBMS_OUTPUT.put_line('Bir ifade doğru.');
END IF;
IF NOT v_sonuc2 THEN
DBMS_OUTPUT.put_line('v_sonuc2 FALSE değerine sahip.');
END IF;
END;
String operatörü
PL/SQL içerisinde yer alan || operatörü string ifadeleri birleştirmek için kullanılır.
SET SERVEROUTPUT ON;
DECLARE
v_adi VARCHAR(40) := 'Yusuf';
v_soyadi VARCHAR(40) := 'SEZER';
BEGIN
DBMS_OUTPUT.put_line('Merhaba ben ' || v_adi || ' ' || v_soyadi);
END;
PL/SQL Derslerine buradan ulaşabilirsiniz.
Hayırlı günler dilerim.