Velká písmena na Firebirdu 1.5
Na konferenci jsem se dozvěděl, jaktože FB 1.5 občas správně provedl UPPER na národních znacích a někdy na to zarytě kašlal. Je to velice prosté – pokud je na sloupci definováno collate, funguje vše dobře. Když se použije defaultní, funkce UPPER nepřevede národní znaky dobře (no vlastně je nechá tak jak jsou 😉). FB 2 už má toto samozřejmě opraveno.
No a pojďme omrkat ukázku:
Vytvoříme tabulku:
create table test (col1 varchar(20) character set win1250 collate PXW_CSY, col2 varchar(20) character set win1250);
Vložíme data:
insert into test values ('ěščřžýáíé_aaa', 'ěščřžýáíé_aaa');
A zkouška:
select upper(col1), upper(col2) from test;
UPPER UPPER
==================== ====================
ĚŠČŘŽÝÁÍÉ_AAA ěščřžýáíé_AAA
A je hotovo. Funguje. Doufám, že tento malý tip pomůže. Nevím, kdo na to přišel první, já to však vím od Stefana Heymanna.