03 September 2006

Oracle Single Row Character SQL Functions

Oracle, standart SQL üzerinde bir takım geliştirmeler içine yaparak kullanıcıların sıkça kullanabilecekleri fonksiyonları bütünleştirmiştir. Bunlar starndart SQL cümlerinin yapamadığı fonksiyonaliteleri kolayca sağlarlar. Genel olarak iki tek ve çoklu satır fonksiyonları olmak üzere iki gruba ayrılabilir:

Oracle Tek Satır SQL Fonksiyonları(Oracle Single Row SQL Functions)

Bunlar bir sorgu içinde yazıldıklarında her satır için ayrı bir değer döndürürler. Kendi içinde bunları karakter, sayısal ve dönüştürme olarak bölümlendirebiliriz. 

Karakter Fonksiyonları:

Karakter fonksiyonları kendilerine gelen string bir ifadeyi işleyip sonucunda ya string ya da sayısal bir ifade döndürürler. 
UPPER: Gelen stringin tamamını büyük harfe çevirir.
SELECT upper('My name is Oracle') result_value FROM dual--MY NAME IS ORACLE 

LOWER: Gelen stringin tamamını küçük harfe çevirir. 
SELECT lower('MY NAME IS ORACLE') result_value FROM dual--my name is oracle 

INITCAP: Gelen stringin içindeki her kelimenin ilk harfini büyük, diğerlerini küçük harfe çevirir. 
SELECT initcap('my name is oracle') result_value FROM dual--My Name Is Oracle

CONCAT : İki stringi birleştirir. Aynı işlevi || de gösterir. 
SELECT concat('My name ', ' is Oracle' ) result_value FROM dual--My name  is Oracle
SELECT
'My name ' || ' is Oracle' result_value FROM dual--My name  is Oracle

SUBSTR : Bir stringi, verilen karakterden sayısından itibaren, belirtilen karakter kadar alt stringe böler 
SELECT substr('My name is Oracle',12,6 ) result_value FROM dual--Oracle

LENGTH : Birçok programalama dilinde olduğu gibi verilen stringin boyutunu belirtir. Sayısal değer döndürür. 
SELECT length('Oracle' ) result_value FROM dual--6

INSTR : Bir string içinde belirtilen stringin geçip geçmediğini belirtir. Geçiyorsa, bulunduğu noktayı gösterir. Yoksa 0 döndürür
SELECT instr('My name is Oracle', 'Oracle', 1, 1) result_value FROM dual--12

LPAD : Sola hizalar. Tabular formatta veri hazırlamak için kullanılabilir. 
SELECT lpad('My name is Oracle', 20, '#') result_value FROM dual--###My name is Oracle

RPAD : LPAD gibidir. Tek farkı sağa hizalar. 
SELECT rpad('My name is Oracle', 20, '#') result_value FROM dual--My name is Oracle###

TRIM : Verilen string içinden belirli bir karakteri(boşluk) baştan ve sondan siler. 
SELECT trim('    My name is Oracle    ') result_value FROM dual--My name is Oracle

REPLACE : Verilen string içinden bir stringi verilen başka bir string ile değiştirir. 
SELECT replace('My name is Database', 'Database', 'Oracle') result_value FROM dual--My name is Oracle

Bu fonksiyonlar birlikte kullanıldığında çok işe yarar. Örnek olarak tablodaki bir sütunun değeri “128596a;6659842d” gibi bir ifade olsun. Son karakterin a veya d olması aktif veya deaktif olduğunu belirtsin. Bu durumda aktif olan kayıtları bulmak için: 
SELECT upper( substr('128596a;6659842d',-1,1)) result_value FROM dual--D

No comments: