Bilmek istediğin her şeye ulaş

Sql Server'da kayıtlar içerisinde oluşan Türkçe karakter hatasını nasıl düzeltebilirim?

Veri tabanın türkçe harfleri desteklemiyordur. Yeni veritabanı oluştur ve bu esnada Collation bölümünde Turkish_ci_as seç. Bundan sonrası veritabanları arasında veri aktarımı yapmanı gerektirir. 

Ya da tek tek hepsini elden düzelteceksin.
  • Paylaş
Sql Server tarafında başlangıçta veritabanı oluştururlurken dikkat edilmesi gereken Collation Settings ayarı var öncelikle bu kontrol edilmelidir.

"Collation Settings ayarı ile Sql Server'da verilerin sıralanmasını hangi karakter setine göre yapılacağı, sorgulayacağı ve saklayacağı belirlenir. Karakter seti Amerikan Standart Karakterleri (ANSI) dışındaki karakterlerle ilgili olarak sunucunun nasıl davranacağını belirler. Örneğin Colltion'ı Türkçe olarak ayarlanmamış bir Sql Server'da "ş" harfi "s"den sonra değil "z"den sonra gelecektir. " Kadir Çamoğlu'nun Sql Server kitabından.

MsSQL (Microsoft SQL Server)
Mevcut verilerin az ise elle düzeltmek bir seçenek ancak her zaman bunu yapamayabiliriz. Bu yüzden hangi Türkçe karaktere karşılık hangi hatalı karakter üretiliyor bunu tek tek tespit etmelisin.
Örneği Ş harfi yerine $% gibi bir karakter geldiğini ü yerine de {/* gibi bir şey yazıldığını tek tek tespit etmelisin.


Türkçe karakterlerin ğ, ü, ş, ç, ö, ı tek tek veritabanına ne şekilde hatalı kaydedildiğini tespit ettikten sonra ve collation Settngs ayarını düzelttikten sonra da veritabanı üzerinde gerekli düzeltmeye yapacak kodunu yazıp replace metodu ile hatalı olan karakterlerin yerine türkçe karakterleri yazabilirsin.

Şöyle bir yol izlenebilir.
Her kayıt içinde bu karakterlerden olup olmadığını search eden bir sorgun olabilir ve eğer varsa bu replace işlemini yapan metodun içerisine girip gerekli işlemi yapabilir.

Ben böyle bir replace işlemine kalkışacak olsaydım öncelikle veritabanını yedek alır ve aynı veritabanının bir kopyasını alarak development ortamında test ederek çalışırdım. Her şeyden emin olduktan sonra canlı db üzerinde servisleri durdurduktan sonra işlem yapardım.

Replace dışında sadece collation ayarlarını değiştirmek yeterli midir bunu kendi makinamda denemeye çalıştım ama olmadı
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

894 Görüntülenme3 Takipçi2 Yanıt