ORACLE – PL/SQL – ÖZEL FONKSİYONLARI
ORACLE METİNSEL – STRİNG FONKSİYONLAR:
ASCII: Belirtilen karakteri temsil eden sayı kodunu döndürür.
-- SELECT ASCII('A') FROM DUAL; --SONUÇ: 65 --
ASCIISTR: Herhangi bir karakter kümesindeki bir dizgeyi veritabanı karakter kümesini kullanarak bir ASCII metini(stringi)dönüştürür.
CHR: Numara kodunu temel alarak karakteri döndürür
-- SELECT CHR(65) FROM DUAL; --SONUÇ : A --
COMPOSE: Bir Unicode dizgisi döndürür
CONCAT: İki metni birbirine birleştirmenizi sağlar.
-- SELECT CONCAT('Salih ','ŞEKER') FROM DUAL; --Sonuç : Salih ŞEKER --
||: Birlikte iki veya daha fazla metni birleştirmenizi sağlar.
-- SELECT 'Salih ' || 'ŞEKER' FROM DUAL; --Sonuç : Salih ŞEKER -- MSSQL deki artı "+" işareti gibi çalışmaktadır. --
CONVERT: Bir metni bir karakter kümesinden diğerine dönüştürür
DECOMPOSE: Bir metni kabul eder ve bir Unicode metni döndürür
DUMP: Veri türü kodunu, bayt cinsinden uzunluğunu ve ifadenin iç gösterimini içeren bir varchar2 değeri döndürür
INITCAP: Her kelimenin ilk harfini büyük harfe ve geri kalanını küçük harfe ayarlar.
-- SELECT INITCAP('salih bloG yazısı') FROM DUAL; --Sonuç : Salih Blog Yazısı --
INSTR: Bir dizgede bir dizgenin yerini döndürür
INSTRC: Unicode tam karakterlerini kullanarak bir dizgede bir dizginin konumunu döndürür
LENGTH: Belirtilen metnin uzunluğunu döndürür
-- SELECT LENGTH('SALİH') FROM DUAL; --Sonuç : 5 --
ALTLA: Belirtilen metindeki tüm harfleri küçük harfe dönüştürür
LPAD: Bir metnin sol tarafını belirli bir karakter ile doldurur.
-- SELECT LPAD('Ocak' 10, '.'), LPAD('Haziran' 10, '.') FROM DUAL; --
RPAD: Bir metnin sağ tarafını belirli bir karakter ile doldurur.
-- SELECT RPAD('Ocak' 10, '.'), RPAD('Haziran' 10, '.') FROM DUAL; --
RTRIM: Belirtilen tüm karakterleri bir metnin sağ tarafından kaldırır.
-- SELECT RTRIM('Ocak.....','.') FROM DUAL; --Sonuç : Ocak --
LTRIM: Belirtilen tüm karakterleri bir metnin sol tarafından kaldırır.
-- SELECT LTRIM('.....Ocak','.') FROM DUAL; --Sonuç : Ocak --
TRIM: hem LTRIM hemde RTRIM i aynı anda yapan fonksiyondur.
-- SELECT TRIM('.' FROM '..Ocak....') FROM DUAL; --Sonuç : Ocak --
NCHR: Karakteri, ulusal karakter kümesindeki sayı koduna göre döndürür
REGEXP_INSTR: Bir dizgede düzenli ifade deseninin yerini döndürür
REGEXP_REPLACE: Normal ifade deseni eşleşmesini kullanarak, bir dizideki karakter dizisini başka bir karakter kümesiyle değiştirmenizi sağlar.
REGEXP_SUBSTR: Normal ifade deseni eşleştirmesini kullanarak bir metinden bir metin e almanızı sağlar.
REPLACE: Bir dizideki karakter sırasını başka bir karakter kümesiyle değiştirir.
-- SELECT REPLACE('Superman','pe','ga') FROM DUAL; Sonuç : Sugarman SELECT REPLACE('123Salih123','123') FROM DUAL; Sonuç : Salih --
SOUNDEX: Bir dizgenin fonetik bir temsilini döndürür
SUBSTR: Bir metnin belirli bir kısmını almamızı sağlar
-- --SUBSTR(metin,başlangıç_karakteri,[seçilecek_karakter_sayısı]) SELECT SUBSTR('Ankara',3,4) FROM DUAL; --Sonuç: kara SELECT SUBSTR('Ankara',2) FROM DUAL; --Sonuç: nkara --
TRANSLATE: Bir dizideki karakter dizisini başka bir karakter kümesiyle değiştirir.
-- SELECT TRANSLATE('222oracle','2or','3ac') --
bu örnekte 2 olan yerlere 3 , o olan yerlere a , r olan yerlere c ile değiştir demiş oluyoruz.
TRIM: Belirtilen tüm karakterleri ya bir dizgenin başına ya da sonuna kaldırır.
UPPER: Belirtilen metindeki tüm harfleri büyük harfe dönüştürür
-- SELECT UPPER('salih') FROM DUAL; --Sonuç : SALIH --
LOWER: Belirtilen metindeki tüm harfleri küçük harfe dönüştürür
-- SELECT LOWER('SALIH') FROM DUAL; --Sonuç : salih --
VSIZE: Bir ifadenin iç gösterimi içindeki bayt sayısını döndürür
TO_CHAR: Tarih ve sayısal ifadelieri metinsel formata dönüştürmeye yarar.
-- SELECT TO_CHAR(SYSDATE,'DD-MM-YYYYHH24:MI') FROM DUAL; --
TO_NUMBER: metni numeric bir değere dönüştürür
-- SELECT TO_NUMBER('546654') FROM DUAL; --
NVL: Null gelen değer yerine istenen değeri yazmamıza yarar. MSSQL deki ISNULL gibi.
-- SELECT DEPARTMENT_NAME , NVL(MANAGER_ID , 0) FROM DEPARTMENTS --
NVL2: 3 paramtre alır , ilk paramtre nul değil ise 2. paramtreyi ,null ise 3.paramtreyi geri döner.
-- SELECT DEPARTMENT_NAME , NVL2(MANAGER_ID , 'YÖETİCİSİ VAR' , 'YÖNETİCİSİ YOK' ) FROM DEPARTMENTS --
ORACLE SAYISAL- NUMERİC FONKSİYONLAR:
ABS: Sayının mutlak değerini döndürür
-- SELECT ABS(-23) FROM DUAL; --Sonuç: 23 --
ACOS: bir sayının ark kosinüsünü döndürür , sonucu radyan cinisinden verir.
-- SELECT ACOS(0.5) FROM DUAL; --Sonuç : 1,04719755119659774615421 --sonucu radyan cinisinden verir. --
ASIN: Bir sayının ark sinüsünü döndürür
ATAN: Bir sayının ark tanjantını döndürür
AVG: Bir ifadenin ortalama değerini döndürür
BITAND: Eksp1 ve expr2 bitlerinde bir AND işlemini temsil eden bir tamsayı döndürür
CEIL: Bir sayıdan büyük veya ona eşit olan en küçük tamsayı değerini döndürür- Yukarı yuvarlar
-- SELECT CEIL(15.7) FROM DUAL; --Sonuç : 16 --
COS: Bir sayının kosinüsünü döndürür
COSH: Bir sayının hiperbolik kosinüsünü döndürür
COUNT: Bir ifadenin sayısını döndürür. Null kayıtları saymaz.
-- SELECT COUNT(EMPLOYEE_ID) FROM EMPLOYEES; --Sonuç:107 -- Dikkat : NULL kayıt var ise saymaz. --
EXP: sayının gücüne yükseltilmiş ifadeler,
FLOOR: Bir sayıya eşit veya daha küçük en büyük tamsayı değerini döndürür – Aşağı Yuvarlar
-- SELECT FLOOR(15.9) FROM DUAL; --Sonuç : 15 --
GREATEST: İfadeler listesindeki en büyük değeri döndürür
LEAST: İfadelerin bir listesindeki en küçük değeri döndürür
LN: Bir sayının doğal logaritmasını döndürür
LOG: Bir sayının doğal logaritmasını belirtilen bir tabana döndürür
MAX: Bir ifadenin maksimum değerini döndürür
MEDIAN: Bir ifadenin medyanını döndürür
MIN: Bir ifadenin minimum değerini döndürür
MOD: n’nin kalan kısmını m ile döndürür
POWER sayının kuvvetini alır
REGEXP_COUNT: Bir dizide bir desenin kaç defa oluştuğunu sayar
REMAINDER: n’nin kalanını n’ye böler
ROUND: Belirli bir ondalık basamağa yuvarlanmış bir sayı döndürür
ROWNUM: Bir satırın sırasını temsil eden bir sayı döndürür.
-- SELECT ROWNUM , FIRST_NAME FROM EMPLOYEES; -- SELECT TOP GİBİ KULLANIM İÇİN WHERE DE KULLANMALIYIZ SELECT ROWNUM , FIRST_NAME FROM EMPLOYEES WHERE ROWNUM < 6; --
SIGN: Bir sayının işaretini gösteren bir değer döndürür
SIN: bir sayının sinüsünü döndürür
SQRT: Bir sayının karekökünü döndürür
SUM: Bir ifadenin toplanan değerini döndürür
TAN: Bir sayının teğetini döndürür
TANH: n hiperbolik tanjantını döndürür
TRUNC: Belirli bir ondalık basamağa kesilmiş bir sayı döndürür
-- SELECT TRUNC(125.815) FROM DUAL; --Sonuç: 125 SELECT TRUNC(125.815,2) FROM DUAL; --Sonuç: 125.81 SELECT TRUNC(125.815,-2) FROM DUAL; --Sonuç: 100 --
ROWID: Veritabanındaki her kaydın tekil adresidir , her tabloda bulunur.
ORACLE TARİH- DATE FONKSİYONLAR:
ADD_MONTHS: Belirtilen sayıda ay eklenmiş bir tarih döndürür
CURRENT_DATE: Geçerli tarih, ALTER SESSION komutu tarafından ayarlanan geçerli SQL oturumunun saat diliminde döndürür
CURRENT_TIMESTAMP: Geçerli tarih ve saati, geçerli SQL oturumu saat dilimi içinde ALTER SESSION komutu tarafından belirlenen şekilde döndürür
DBTIMEZONE: veritabanı saat dilimini bir zaman dilimi ofseti veya bir saat dilimi bölge adı olarak döndürür
EXTRACT: Bir tarih veya aralık değerinden bir değer çıkarır
LAST_DAY: Bir tarih değerine dayanarak ayın son gününü döndürür
LOCALTIMESTAMP: Geçerli tarih ve saati, geçerli SQL oturumu saat dilimi içinde ALTER SESSION komutu tarafından belirlenen şekilde döndürür
MONTHS_BETWEEN: date1 ile date2 arasındaki ay sayısını döndürür.
-- SELECT LAST_NAME,HIRE_DATE,MONTHS_BETWEEN(SYSDATE,HIRE_DATE) AS AY FROM EMLOYEES; --
NEW_TIME: Bir tarih, saat dilimi1’den saat dilimi2’deki bir tarihe dönüştürür
NEXT_DAY: Bir tarihten daha büyük olan ilk hafta gününü döndürür
ROUND: Belirli bir ölçü birimine yuvarlanan bir tarihi döndürür
SESSIONTIMEZONE: Geçerli oturumun saat dilimini bir zaman dilimi ofseti veya bir saat dilimi bölge adı olarak döndürür
SYSDATE: Mevcut sistem tarih ve saatini yerel veritabanınıza geri döndürür
-- SELECT SYSDATE FROM DUAL; --Sonuç : 09/09/2018 --
SYSTIMESTAMP: Yerel veritabanınızdaki geçerli sistem tarihini ve saatini (kesirli saniye ve saat dilimi dahil) döndürür
TZ_OFFSET: Bir değerin saat dilimi ofsetini döndürür
Bu yazımızda Oracle Fonksyonlarına ve kullanımlarına değindik . Umarım faydalı olur. İyi Çalışmalar 🙂 – Salih ŞEKER