Oracle’da tablo sütunlarını ,Oracle veri tiplerinin yanında ANSI, DB2  ve  SQL/DS  veri tiplerinde de tanımlamak mümkündür.Bu tür veri tiplerini Oracle veritabanı kendi içinde ki yerleşik dönüştürücüyle Oracle veri tiplerine çevirmektedir.Bu dönüşüm işlemini Oracle otamatik olan kendisi yapsa da dönüşüm işleminin kullanıcı tarafından yapılması tavsiye edilir..
NOT : Oracle’ın kendisi otomatik yaptıgı bazı çeviri durumlarında hata verebiliyor çünkü çevirdigi veri tipini yanlış tanımlıyabiliyor.

TO_CHAR Fonksiyonu
Bu fonksiyon, tarih veya sayısal bilginin istenildiği gibi biçimlendirilerek karakter dizisine dönüştürülmesini sağlar. İki farklı uygulama alanı bulunmaktadır. Eğer tarih bilgisini karakter dizisine, yani bir katara dönüştürmek söz konusu ise ;
TO_CHAR(tarih,’biçim maskesi’)
tanımı uygulanır.Tarihle ilgili biçimlendirme ifadesi; bazı biçimlendirme elemanlarından ve kurallardan oluşur. Biçimlendirme ifadesi, tek tırnaklar arasında yazılır ve büyük küçük harf ayrımına karşı duyarlıdır. Tarih ve zaman ile ilgili biçimlendirme ifadelerinde aşağıdaki tanımlardan yararlanılır ;
biçim maskeleri

* SQL> SELECT TO_CHAR(sysdate,’DD-MM-YYYY HH24:MI:SS’) FROM DUAL;
Dönen_Deger
24-12-2011 15:40:22
* SQL> SELECT TO_CHAR(hire_date,’DD-MON-YY’) FROM EMPLOYEES;
Dönen_Deger
17-HAZ-87
21-EYL-89
13-OCA-93
03-OCA-90
21-MAY-91

Eğer, bir sayısal değerin karakter katarına dönüştürülmesi isteniyorsa,
TO_CHAR(sayı,’biçim maskesi’)
Tarih ve zaman ile ilgili biçimlendirme ifadelerinde aşağıdaki tanımlardan yararlanılır ;SAYISAL FONKSİYONLAR için
biçim maskeleri

* SQL> SELECT TO_CHAR(123456,’999,999′) FROM DUAL;
Dönen_Deger
123,456
* SQL> SELECT TO_CHAR(123456,’00999,99900′) FROM DUAL;
Dönen_Deger
00001,23456

TO_NUMBER Fonksiyonu
Karakter alan olarak tanımlanmış bir sütunun içerdiği sayısal değerleri, sayısal veri türüne dönüştürmek için TO_NUMBER() fonksiyonu kullanılır. Bu fonksiyon şu şekilde tanımlanır;
TO_NUMBER(karakter_verisi,’biçim_maskesi’)
Biçimlendirme ifadesi, TO_CHAR() fonksiyonunda olduğu gibi, aşağıda yer alan işaretler kullanılarak düzenlenir;
biçim maskeleri

* SQL> SELECT TO_NUMBER(‘123.456’,999.999) FROM DUAL;
Dönen_Deger
123456

TO_DATE Fonksiyonu
Karakter dizisi olarak saklanan ifadeleri tarih bilgisine çevirmek söz konusu olduğunda TO_DATE fonksiyonuna başvurulur. Bu fonksiyon şu şekilde tanımlanır;
TO_DATE(karakter_verisi,’biçim_maskesi’)
NOT : Biçim maskeleri TO_CHAR’da kullandıgımız tarih-zaman biçim maskelerininkiyle aynıdır.

* SQL> SELECT TO_DATE(’24/12/2011′,’DD/MM/YYYY’) FROM DUAL;
Dönen_Deger
24/12/2011

ASCIISTR Fonksiyonu : Karekterleri ASCII’ye dönüştürür.
BIN_TO_NUM Fonksiyonu : Bit dizgesini sayıya dönüştürür.
CAST Fonksiyonu : Veritiplerini dönüştürür.
CHARTOROWID Fonksiyonu : Karakterleri ROWID veritipine dönüştürür.
COMPOSE Fonksiyonu : Unicode degere dönüştürür.
CONVERT Fonksiyonu : Bir karakter kümesini digerine dönüştürür.
DECOMPOSE Fonksiyonu : Unicode degeri eskisine dönderir.
HEXTORAW Fonksiyonu : Hexedecimal degeri haw(raw) degere dönüştürür.
NUMTODSINTERVAL Fonksiyonu : Number degeri “Interval day to second” degere dönüştürür.
NUMTOTMINTERVAL Fonksiyonu : Number degeri “Interval day to month” degere dönüştürür.
RAWTOHEX Fonksiyonu : Haw degeri hexedecimal degere dönüştürür.
ROWTOCHAR Fonksiyonu : ROWID degeri karaktere dönüştürür.
TO_DSINTERVAL Fonksiyonu :  Karakter dizgesini “Interval day to second” degerine dönüştürür.
TO_MULTIBYTE Fonksiyonu : Tek byte’lik karakteri eşiti çoklu byte’a dönüştürür.
TO_SINGLE_BYTE Fonksiyonu : Çoklu byte degeri tek byte’li degere dönüştürür.
TO_YMINTERVAL Fonksiyonu : Karakter dizgesini “Interval day to month” degere dönüştürür.
UNISTR Fonksiyonu : UCS2 Unicode degerine dönüştürür.

NOT  : Örneklerimde Oracleda ki DUAL table ‘ ı ve HR user ‘ ı kullanıyorum.

Yazar : Mustafa Bektaş Tepe
Java && Oracle

5,978 total views, 5 views today