tabs ↹ over ␣ ␣ ␣ spaces

by Jiří {x2} Činčura

Velká písmena na Firebirdu 1.5

18 Nov 2006 Firebird

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.

Profile Picture Jiří Činčura is an independent developer focusing on data and business layers, language constructs, parallelism and databases. Specifically Entity Framework, asynchronous and parallel programming, cloud and Azure. He's Microsoft Most Valuable Professional and you can read his articles, guides, tips and tricks at www.tabsoverspaces.com.