Sayısal Veri İçeren Karakter Alanlar

Oracle veri tabanında, sayısal veri içermesi beklenen karakter tipinde (CHAR,VARCHAR) alanlar sorun yaşamak için birebirdir. Örneğin müşteri numarası tutulan bir alana, servis ve grafik arayüz seviyesinde yeterli kontroller yapılmazsa müşteri adı, soyadı..vs gibi bilgiler yazılıyor olabilir 🙂 Bu alanda to_number() kullanarak bir sorgu yazdığınızda ve ya tabloyu bu alan üzerinden başka bir tablodaki nümerik bir alana bağlamak istediğinizde ORA-01722 hatası alırsınız.

Alanın yer aldığı tablodaki satırları düzeltmek için hangisinde hata olduğu bulmak da ayrı bir sorundur. Bunun için UPPER () ve LOWER () metotlarını kullanabilirsiniz. UPPER () ve LOWER () metotları numerik değerler için aynı, karakter değerleri için farklı sonucu vereceğinden, hatalı satırlara ulaşabilirsiniz. Diyelim ki tablomuzun adı MUSTERI, alanın adı MUSTERINO olsun:


CREATE TABLE MUSTERI
(
RECORDOID NUMBER(16) NOT NULL,
MUSTERINO VARCHAR(10) NOT NULL,
MUSTERIADI VARCHAR(10) NOT NULL
);

Tabloya bazı kayıtlar atalım:


Insert into MUSTERI
(RECORDOID, MUSTERINO, MUSTERIADI)
Values
(4, '!', 'aslan');
Insert into MUSTERI
(RECORDOID, MUSTERINO, MUSTERIADI)
Values
(3, '-', 'aslan');
Insert into MUSTERI
(RECORDOID, MUSTERINO, MUSTERIADI)
Values
(2, 'bogac', 'aslan');
Insert into MUSTERI
(RECORDOID, MUSTERINO, MUSTERIADI)
Values
(1, '100', 'bogac');
COMMIT;

Tabloyu yarattıktan sonra geçersiz değerler içeren satırları bulalım:


SELECT *
FROM MUSTERI M
WHERE UPPER(M.MUSTERINO) != LOWER(M.MUSTERINO)

Bu çözüm UPPER ve LOWER metotlarında aynı sonucu veren bazı diğer karakterler (“!”,”-” gibi) için yeterli olmayabilir, sadece bu karakterleri içeren satırlar olduğundan şüpheleniyorsanız ek sorgular yazmak gerekebilir. Sorunla Oracle veri tabanında karşılaşmış olsam da, diğer veri tabanı sistemleri için de çözüm olacağını düşünüyorum.

Kolay gelsin 🙂

Finans ve Yazılım Günleri 18-19-20-21 Kasım tarihlerinde!

Yıldız Teknik Üniversitesi Kalite ve Verimlilik Kulübü tarafından bu yıl dördüncüsü düzenlenen Finans ve Yazılım Günleri, Davutpaşa Kampüsü Kongre ve Kültür Merkezinde gerçekleşecek.

Etkinliğe bu yıl katılan konuşmacılar arasında Microsoft, Oracle, Akbank, Turkcell, Borsa İstanbul, Ing Bank, Ing Emeklilik, HSBC, Limango ve Ideasoft bulunuyor.

18 ve 19 Kasım tarihlerinde Yıldız Teknik Üniversitesi Davutpaşa Kampüsü Kongre ve Kültür Merkezinde gerçekleşecek toplam 10 oturumun ardından 20 Kasım tarihinde 2 eğitim bulunmakta. Bunlardan biri Turkcell’in Geleceği Yazanlar Projesi kapsamında gerçekleşecek olan Android’e Giriş eğitimi, diğeri ise ING Bank’tan Uzman Yazılımcı Burak Selim Şenyurt’un vereceği Asp.Net eğitimi. Eğitimler, Davutpaşa Kampüsündeki amfilerde gerçekleşecektir. 21 Kasım tarihinde (Teknik Gezi 26 Kasım tarihine ertelenmiştir) ise İstanbul Borsası’na Teknik Gezi düzenlenecek.

Etkinlik hakkında detaylı bilgiye aşağıdaki sayfalardan ulaşabilirsiniz;

Finans ve Yazılım Günleri tanıtım sayfası : http://ytukvk.org.tr/finansyazilim

Teknik Eğitimler hakkında detaylı bilgi için : http://ytukvk.org.tr/teknikegitim

Finans ve Yazılım Günleri Ön Kayıt formu : http://ytukvk.org.tr/fygonkayit

4. Finans ve Yazılım Günleri Facebook Eventi : https://www.facebook.com/events/1428723230681225/

Seminerlere katılmak için Kalite ve Verimlilik Kulübünün stantlarından kayıt yaptırmalısınız. Eğer standlarda kayıt yaptırmadıysanız, ön kayıt formunu doldurmalı ve etkinliğe geldiğinizde kesin kaydınızı yaptırmalısınız.

Etkinlik sertifikalıdır ve 5 TL katılım ücreti vardır.

Etkinliğin ana afişini ise aşağıdadır, programı inceleyebilirsiniz.

Finans ve Yazılım Günleri '13 Ana Afişi

4. Finans ve Yazılım Günleri Davutpaşa Kampüsü Kongre ve Kültür Merkezinde gerçekleşecek.