ANASAYFA | OYUNLAR | YEMEK TARIFLERI | Magazin Haberleri | FIKRALAR | BIYOGRAFILER | HIKAYELER | FORUM

ARA :    |   Faydalı Bilgiler  Makale EKLE

Sıralama :  A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -

 
Genel  Bilgisayar  Sağlık  Bilim  Dini Bilgiler  Msn Messenger Yardim  Windows Live Messenger Yardım  Kişisel Gelişim  Google  PHP  ASP  Web Tasarım  HTML  Photoshop  CSS  Java Script  Java - JDBC   XML  Corel Draw  MYSQL  Webmaster  Internet  Güvenlik  Bilgisayar ve Donanım Dersleri  Arama Motorları (SEO)  PHP-NUKE  Joomla  Oracle  SQLServer  Kültür ve Sanat   Müzik   Sinema   Edebiyat / Kitap   Müze   YAŞAM   SPOR   Eğitim   Otomobil   Genç  FotoGaleri  Galeri video ve Analiz  Galeri Haber  FotoGaleri Sıcak ve Yaşam haberleri  Tüm İcatlar ve keşifler  Bunları Biliyormuydunuz  Sizllerden ve Bizden Gelenler Güncel Haber  rüya tabirleri Sözlüğü  Mizah  Kuraldışı Yaşamak  Tarihte Bugün  imsakiye iftar ve sahur vakitleri  Erkek ve kadın ilişkileri  Birazda Gülelim  Alternatif Tarih  Başarı Öyküleri  Gölgelerden Aydınlığa   
Arama işleminde türkçe karakter sorunu
Arama işleminde türkçe karakter sorunu


Oracle veritabanında tablolarda karakter arama işlemi yaptığımızda Türkçe karakter sorunu yaşıyoruz.  Oracle dil ayarları doğru yapılmışsa, sadece ı İ karakterlerinde bu sorun meydana gelecektir.

Bunu aşmak için basit bir fonsksiyon yazabilir ve bu fonskiyonu SQL cümlelerimizde kullanabiliriz.

Fonskiyon :

CREATE OR REPLACE FUNCTION turkce_ara(gelen in varchar2) RETURN varchar IS
   temp varchar2(1
00);
    BEGIN
       temp:=replace(gelen,
´i´,´İ´);
       temp:=replace(temp,
´ı´,´I´);
       temp:=upper(temp);
         RETURN temp;
   END
turkce_ara;

Kullanımı şu şekilde.

(KISI adında bir tablomuz var be ADI, SOYADI,TELEFONU alanlarına sahip. Adı Ali olanları arayacağız.)

Select
   ADI,
   SOYADI,
   TELEFONU
from
   KISI
where
   turkce_ara(ADI) = turkce_ara(´ali´)

Bu SQL çalıştığında, ADI sütunundaki verileri ve aradığımız kelime olan "Ali" kelimesi turkce_ara fonksiyonuna girecektir. Yazdığımız bu fonskyon parametre olarak aldığı "gelen" değişkenindeki "i" harfini "İ" ye,  "ı" harfini "I" ya dönüştürdükten sonra, bu değişkeni oracle ın upper fonksiyonuna sokarak tamamını büyük harfe çevirir. Bu sayede türkçe karakter sorunu olmadan arama yapabiliyoruz.

Oracle türkçe ayarlanmış olsa bile, upper() fonskiyonu "ı, i" karalterlerinde sorun yapmaktadır. O yüzden i ve ı harflerini düzgün şekilde büyük harfe çevirmek için bu fonksiyonu yazdık. Bu işlem, büyük tablolarda performans sorununa neden olacaktır.

(Oracle son versiyonlardada bu sorunu düzeltilmiş olabilir, denemedim.)


 Arkadaşınıza gönderin

   
 

  Ekleyen : Alim Ömer ABUL
Okunma Sayısı : 254
Eklenme Tarihi : 31 Ocak 2007, Çarşamba
SONRAKI BILGI : Açılır Kutu(DropDown) yapımı   
Forum Linki:
HTML Link:
Direkt Link:
Mause ile tıklayın ve Ctrl + C ile kopyalayın
   

 

 
 

 
ONLINE KULLANICI : 1 | 0,09 saniye Sayfa Yüklenme
Copyright © E-hadi.NET by: Bahar YILMAZ & Alim Ömer ABUL, 2006.
Hosting Hizmetleri       Webmaster Pagerank