Német adattárházak nyelvi problémái

Tépelődtünk már egy párszor itt a BI projekt blogon a nyelvi különbségek kezeléséről. A magyar nyelvvel már foglalkoztunk eleget (ékezetes betűkkel itt, dupla mássalhangzókkal itt) Most jöjjön a német nyelv :-)

Több ország forrásrendszeréből kellett betöltenünk az adatokat egy központi adattárházba. Ez meg is történt csont nélkül, de amikor fel akartuk összegezni az adattárházon lévő OLAP kockákat, jött a hibaüzenet:

Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'dbo_v_DimContact', Column: 'ContactAddress', Value: 'Lindwurmstraße'. The attribute is 'Contact Address'.

Néhány óra kutakodás után kiderült, hogy az adattárház tartalmaz két olyan ügyfelet is, akinek székhelye a Lindwurmstraße -n van. Csakhogy az egyik Lindwurmstraße-n székel a másik a Lindwurmstrasse-n.

Azt is megtudtuk, hogy a német nyelvben egyre kevésbé használják a „ß" karaktert, helyette az „ss"-t használják. És mint kiderült a DIN/ISO szabvány nem tesz különbséget az „ß" és az „ss"- között és így az SQL Server sem. Illetve nem mindig.

Ha beszúrjuk a Lindwurmstraße-t és a Lindwurmstrasse-t egy táblába, akkor különbséget tesz köztük. Lekérdezve a varbinary-vá konvertált értéküket ugyanis tisztán látszik, hogy tároláskor még meg van a „ß" karakter.

Ugyanakkor ha lekérdezzük, hogy hány különböző (Distinct) cím található az adatbázisban akkor 1-et fogunk kapni: A Lindwurmstrasse-t.

Lekérdezéskor ugyanis a Lindwurmstrasse és a Lindwurmstraße ugyanannak számit. És ez logikus is így, csak szegény Analysis Services belehal...

Megoldás: Vagy betöltés közben kicseréljük a „ß" karakter „ss" re, vagy Bináris collation használunk az adattárház oldalon. Ha binárisra állítjuk a collationt, akkor az „ß" és az „ss" két külön karakternek fog látszani és a distinct lekérdezés is két külön sort fog visszaadni. Mi ez utóbbit választottuk, és úgy oldottuk meg a problémát, hogy az adattárház feletti view-k ban állítottuk át a collationt

Kővári Attila - BI projekt

hozzászólás

Úgy tudom, az új helyesírás szerint egyébként is az "ss" formula az elfogadott. Üdv, Zita @ http://www.kozelben.hu/

Köszönöm a cikket. Most futottam bele ugyanebbe a problémába és emlékeztem, hogy olvastam itt róla korábban.

Új hozzászólás