Postgresql Türkçe Harfler

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
anemos
Üye
Mesajlar: 101
Kayıt: 02 Nis 2007 06:51
Konum: Sakarya / Hendek

Postgresql Türkçe Harfler

Mesaj gönderen anemos » 17 May 2017 06:00

Merhaba.

Collate "Turkish_Turkey.1254" olduğu halde " i,İ,ı,I " haflerinde (diğer Türkçe harflerde sıkıntı yok) sıralamada, lower ve upper fonksiyonlarında düzgün çalışmıyor.

Internette araştırdığım kadarıyla Linux sistemlerde Türkçe harfler düzgün çalışırken, sorunun yalnız Windows işletim sisteminde olduğu söyleniyor. Bir EnterpriseDB geliştiricisi de "karakter bilgisini OS söyler" demiş. Gördüğüm kadarıyla Firebird' de olduğu gibi başka bir TR collate de tanımlanmıyor.

Belki "lower" ve "upper" için "replace" kullanarak geçici bir çözüm bulunabilir ancak sıralama halen sorunlu.

Bu konudaki çözüm önerinizi paylaşır mısınız?

anemos
Üye
Mesajlar: 101
Kayıt: 02 Nis 2007 06:51
Konum: Sakarya / Hendek

Re: Postgresql Türkçe Harfler

Mesaj gönderen anemos » 19 May 2017 11:44

Problem Windows işletim sisteminden kaynaklanıyormuş ve Microsoft'un yıllardan beri bunun için ürettiği bir çözüm yok.

Bu problem için Devrim Gündüz' den aldığım yanıt:
Merhabalar,

PostgreSQL collation desteğini işletim sisteminden alıyor. Windows'daki
collation ise sorunlu bildiğin kadarıyla. O yüzden Linux'a geçmeniz ya da
sorunu Microsoft'a bildirmeniz gerekiyor :/

Linux'da şu şekilde yaratabiliyorsunuz:

https://blog.gunduz.org/index.php?/arch ... atmak.html

Tabii bu arada ben tam 20 yıldır Windows kullanmıyorum, belki blogdaki yöntem
Windows'da çalışır, onu bilmiyorum :-)

Saygılar, Devrim
Windows'da süregelen bu probleme rağmen Firebird'deki "PXW_TURK" collationu örnek göstererek, Postgresql' in de benzer yolla Windows için bir çözüm olup olamayacağını sorduğumda aldığım yanıt :
Merhabalar,

PXW_TURK için baktığımda Microsoft değil de Firebird özelliği gibi geldi, yanılıyor muyum? Onlar kendileri bir şekilde çözmüş olabilirler, ama PostgreSQL bu işi işletim sistemi tarafında çözmek istiyor. Veritabanının işi collation'ı düzgün yapmak, collation kodu yazmak değil ;)

Bir de, Windows'da PostgreSQL kullanımını pek önermiyoruz, hatta ciddi sistemlerde kesinlikle Linux diyoruz, bu nedenle hiç çözmemek daha iyi bile olabilir.

İlk iletimde de yazmıştım: Ben Windows kullanmıyorum, belki bu sorun bir şekilde çözülmüştür diyecektim ki... Bir Windows bulup denedim, evet çözüm yok gibi görünüyor.

Linux kullanın, rahat edin :)

Saygılar, Devrim
Özetle, Postgresql' de düzgün bir Türkçe collation için Linux. ;)

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 842
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Postgresql Türkçe Harfler

Mesaj gönderen csunguray » 20 May 2017 05:37

Bu cevaplara ben de baktım. Bu Devrim denilen kişi ne kadar kibirli biriymiş. Maalesef MS ve Windows düşmanı olduğu çok belli. Bu iş SQL Server'da düzgün çalışıyorsa diğerlerinde düzgün çalışabilir. Ben Postgre kullanmaya kalksam ve bir sorunumda böyle bir cevap alsam işletim sistemini değiştireceğime Postgere'yi değiştiririm. Çünkü Windows üzerinde Postgre kullanmaya çalışanların gerekçesi Postgre'nin Windows üzerinde çalıştığını vaadetmesi.

Gelelim açık kaynak meselesine. Her daim açık kaynak terimini ağızlarından düşürmeyenler buna bir el atıp Türkçe için bir patch yayınlasaymış ya.

Demek ki "biz parayı bastırdık SQL Server/Oracle aldık, kafamız rahat" diyenler pek de haksız değilmiş.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

anemos
Üye
Mesajlar: 101
Kayıt: 02 Nis 2007 06:51
Konum: Sakarya / Hendek

Re: Postgresql Türkçe Harfler

Mesaj gönderen anemos » 20 May 2017 11:40

Aynı problem Postgresql' in ücretli versiyonu/sponsoru olan EnterpriseDb' de var. Oracle uyumluluğu ve ek güvenlik modelleri dışında veritabanı aynı. Adamlara parasıyla da olsa iş yaptırmak mümkün değil.

Cevapla