Üye Ol | Bağlan
ANASAYFA | VERİTABANI | PROGRAMLAMA | HAKKIMIZDA | BLOG | ETKİNLİKLER | KAYNAKLAR
Yazı Hakkında
  Seviye:
Yazar:Yaşar GÖZÜDELİ
Okunma: 4454
Oylanma:40 kişi (6,67/10)
 
 
Tavsiye Et
Yazıcı Dostu
Evrak Çantama Al
 
KATEGORİLER
  VERİTABANI
    ORACLE
    HIZLI SQL KURSU-1
    SQL SERVER 2005
    SQL SERVER 2000
PROGRAMLAMA
    JAVA
    ADO.NET
    MOBİL PROGRAMLAMA
    ASP.NET
    VB.NET
    C# ve C#.NET
İŞARETLEME DİLLERİ
    HIZLI WEB PR. KURSU
    XML
HABERLER
EĞİTİM & SERTİFİKA
KİTAP
SÖYLEŞİ
HAKKIMIZDA
BLOG
ETKİNLİKLER
 
  XHTML,CSS,VBScript,ASP SQL Lab 2.0 Beta
Hızlı SQL Kursu(Yeni)
 
 
Son Eklenenler
 
SQL SERVER 2005
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak

Transact SQL’de SQL Server 2008 Yenilikleri-1

SQL Server’da verileri Türkçe Karaktere Dönüştürmek

StrToCursor Prosedürü ile Hızlı ve Kolay Cursor Açmak

Triggerı Hangi Olayın Tetiklediğini Tespit Etmek

İleri Cursor Açma Tekniği

Yazılımcılar için SQL Server Erişim Güvenliği

JAVA
Java'ya GiriŞ - 3 : JCreator Editörü

HABERLER
Verivizyon.com Topluluk Kurucusuna MVP Ödülü

Verivizyon yeni sunucularında

 
Bu Bölümden
MS SQL Server'a Erişmek Hakkında Her şey(10033 yükleme)
Yazılımcılar için SQL Server Erişim Güvenliği(7493 yükleme)
SQL Server Verilerini 2005 Sürüme Aktarmak(7173 yükleme)
SQL Server 2005'de CLR Desteği-2(6765 yükleme)
İleri Cursor Açma Tekniği(6554 yükleme)
Rütbeleme Fonksiyonları ile Kayıtları Sıralamak(6170 yükleme)
COALESCE Fonksiyonu ile Dinamik Where Şartları Hazırlamak(5395 yükleme)
Tablo Tipli Kullanıcı Tanımlı Fonksiyonlar Kodlamak(5391 yükleme)
Transact SQL’de SQL Server 2008 Yenilikleri-1(5246 yükleme)
Satırları Sütuna veya Sütunları Satıra Dönüştürmek(5155 yükleme)
 
 
E-LİSTE
BT ve özellikle Veritabanı ile ilgili haber, yenilik ve etkinlikler hakkında önceden haber almak için bize e-mail adresinizi bırakabilirsiniz.

ANKET
SQL Server 2008'e geçtiniz mi?
Sorunsuz Geçtik
2005'e yeni geçtik
2000 bize yetiyor.
 

 


SQL Server’da verileri Türkçe Karaktere Dönüştürmek


Default ayarı latin karakter olarak tanımlanmış bir SQL Server veritabanını, yıllarca kullanıp, günün birinde Türkçe'ye yedek indirdiğinizde çıkacak karakter sorunları saç baş yoldurabilir. Bu durumdan kurtulmanın daha kolay bir yolu olabilir ama SQL Server ‘da tanımlayacağınız bir skaler fonksiyon, biraz sizi uğraştırsa da işe yarar bir yöntem olarak tercih edilebilir.

SQL Server’i Türkçeleştirmek Hakkında

Şayet sıfırdan bir veritabanı tasarlıyorsanız daha sonra başağrıları çekmemek için, SQL Server’i Türkçeleştirmek konusunda belli başlı ayarları ele alan 'http://www.verivizyon.com/detail.asp?cid=324 adresindeki makaleye gözatabilirsiniz.

SQL Server Üstünde Skaler Fonksiyonlar Yazmak

En basit SQL Server Skaler fonksiyonu şu şekilde bir şey olacaktır:

CREATE FUNCTION fonksiyon(@isim VARCHAR(20))
RETURNS VARCHAR(30)
AS
BEGIN
	return ‘Merhaba’ + isim
END

SQL Server’da Unicode Karakter Kullanmak

SQL Server herhangi bir string literali(elle verilen değeri) ASCII olarak algılar. Unicode olarak algılaması için ifadenin başına N’ unicode string’şeklinde belirtmek gerekir.

Bozuk Karakterlerin Türkçe Karşılıklarını Bulmak

Bütün bunlardan sonra bu işi yapan bir fonksiyon şu şekilde olabilir:

CREATE FUNCTION Turkceye (   
@girdi NVARCHAR(MAX)  
)  
RETURNS NVARCHAR(MAX)  
AS  
BEGIN  
 
DECLARE @sonuc NVARCHAR(MAX)  
SET @sonuc = @girdi  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'ğ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ'); 
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş'); 
RETURN  @sonuc   COLLATE Turkish_CI_AS ;

END  

COLLATE fonksiyonunun kullanımı hakkında ayrıntılı bilgi MSDN’den edinebilirsiniz.

Bu türden bir fonksiyonun veritabanınızda işe yarayıp yaramadığını şu şekilde test edebilirsiniz:

SELECT dbo.Turkceye(tblMakale.makaleBaslik)
FROM tblMakale

Şayet fonksiyon tam olarak işe yarıyorsa, veritabanınızdaki her bir bozuk sütun için şu şekilde güncelleme yapabilirsiniz:

UPDATE tblMakale
SET tblMakale.makaleBaslik=dbo.Turkceye(tblMakale.makaleBaslik)
DİKKAT:

Veritabanlarında güncelleme yaparken dikkatli olmanız gerekir. Kalıcı veri kayıplarına neden olabilir.

Sonuç

Bu türden bir fonksiyonla verilerinizi UPDATE etmek suretiyle karakter sorunlarından kurtulabilirsiniz. Bu türden bir fonksiyon SQL Server 2000,2005 ve 2008 sürümlerinde çalıştırılabilir. 7.0 ve eski sürümler, fonksiyon için bir destek sağlamamaktadır. Bir veritabanındaki belli veri türünden bütün sütunlarda fonksiyonu otomatik çalıştırmak için sysobject sistem view’i üstünde bir Cursor çalıştırabilirsiniz. Bu, ileri seviyede veritabanı programlama bilgisi gerektirir.

[26.08.2008]

Oy Ver: Kötü 1  2  3  4  5  6  7  8  9  10  İyi


YORUMUNUZ
Kullanıcı :
Başlık :
İçerik:
Lütfen Giriş Yapınız

Yaşar GÖZÜDELİ

Ystanbul Üniversitesi Bilgisayar Mühendisli?i mezunu. 2000 yylyndan bu yana birçok kurumda veritabany uygulamalary geli?tirdi ve "SQL Server ile Veritabany Tasarymy ve Gerçekleme" e?itimleri verdi. NetLIFE, ComputerLIFE, PCLIFE gibi bazy bilgisayar-Magazin dergilerinde yazylary yayynlandy. Halen Byte Türkiye'nin serbest yazarlaryndan ve bu dergi tarafyndan yayynlanan Veritabany Programlama serisinden iki kitapçy?yn yazary. 'veritabany akademisi' slogany ile Veritabany programlama alanynda içerik payla?ym toplulu?u Verivizyon.com'un kurucu üyesi. Bazy E-ticaret projelerinde görev aldy ve halen C# ve ASP.NET ile veritabany uygulamalary geli?tirmekte.

"SQL Server ile Temel Veritabany Programlama" adynda yayynlanmy? ilk kitaby bu alanda kabul gördü. Halen birçok üniversitede ders kitaby olarak okutulmakta. SQL Server ile veritabany programlama hakkynda, "Yazylymcylar için SQL Server 2005" adly yayynlanmy? ikinci bir kitaby daha bulunmakta. Bazy üniversitelerde veritabany yönetim sistemleri dersi okuttu. SQL Server 2000 ve 2005 ile ilgili birçok seminer ve e?itimler verdi. Gazi Üniversitesi Bilgisayar Mühendisli?i yüksek lisans programyndan "Meta-Sezgizel Yöntemlerle XQuery Optimizasyonu" üstüne tez çaly?masy ile mezun olmu?tur. 2007 yylynda MS SQL Server 2007 alanynda yapty?y çaly?malaryndan dolayy Microsoft tarafyndan "En De?erli Profesyonel"MVP ünvany ile ödüllendirildi.

Kişisel Sitesi:http://blog.verivizyon.com/ygozudeli

Yazara Ait Son Eklenen Makaleler
Transact SQL’de SQL Server 2008 Yenilikleri-1(01.09.2008)
SQL Server’da verileri Türkçe Karaktere Dönüştürmek(26.08.2008)
Yazılımcılar için SQL Server Erişim Güvenliği(05.11.2007)
MS SQL Server'a Erişmek Hakkında Her şey(21.05.2007)
Nesneleri İlişkisel Veritabanı ile Konuşturmak ve NHibernate(04.09.2006)
SQL Server Verilerini 2005 Sürüme Aktarmak(28.08.2006)
Rütbeleme Fonksiyonları ile Kayıtları Sıralamak(15.06.2006)
Tablo Tipli Kullanıcı Tanımlı Fonksiyonlar Kodlamak(01.06.2006)
SQL Server 2005'de CLR Desteği-2(17.01.2006)
Tip Geçişlerini Anlamak veya System.Data.SqlTypes(24.11.2005)
 

© 2003 - 2005 Verivizyon.com 'Developer Academy'. Tüm hakları saklıdır. Kullanım Sözleşmesi | Gizlilik İlkeleri | İletişim