Problém - COLLATION WIN_CZ_CI_AI for CHARACTER SET NONE is not defined.

26 views
Skip to first unread message

Dusman

unread,
Oct 31, 2023, 2:49:10 AM10/31/23
to Firebird (CZ)

Ahoj, 

Mám 30 databází Firebird 3.0 na Windows 10,11 a Serverových řešeních 2019 a  2021 Snažím se vytvořit proceduru, která obsahuje podmínku 

where UPPER(a.platce_firma COLLATE WIN_CZ_CI_AI) not like '%NEPOUZIVAT%'

Na třetině DB mi to však vyhodí chybu: 

CREATE OR ALTER PROCEDURE HODNOCENI_FIREM failed.

Dynamic SQL Error.

SQL error code = -204.

COLLATION WIN_CZ_CI_AI for CHARACTER SET NONE is not defined.

Když ale zavolám SQL s dotazem, kde je stejná podmínka where, tak DB normálně data vrátí. Zkoušel jsem DB, kde se problém vyskytuje přeinstalovat na nejnovější verzi Firebirda a provést Gbak a Grestore DB, ale výsledek je stále stejný.

Koukal jsem na nějaké rozdíly mezi systémovými tabulkami RDB$COLLATIONS, ale ty jsou stejné.

Nevíte co s tím?

s pozdravem

Zdeněk

 

Jiří Činčura

unread,
Oct 31, 2023, 6:34:40 AM10/31/23
to fireb...@googlegroups.com
Vypadá to, že u některých DB máš charset nastavený na NONE.

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

On Tue, Oct 31, 2023, at 07:49, Dusman wrote:
> Ahoj,
>
> Mám 30 databází Firebird 3.0 na Windows 10,11 a Serverových řešeních
> 2019 a 2021 Snažím se vytvořit proceduru, která obsahuje podmínku
>
> *where UPPER(a.platce_firma COLLATE WIN_CZ_CI_AI) not like '%NEPOUZIVAT%'*
>
> Na třetině DB mi to však vyhodí chybu:
>
> *CREATE OR ALTER PROCEDURE HODNOCENI_FIREM failed.
> *
>
> *Dynamic SQL Error.*
>
> *SQL error code = -204.*
>
> *COLLATION WIN_CZ_CI_AI for CHARACTER SET NONE is not defined.*
>
> Když ale zavolám SQL s dotazem, kde je stejná podmínka where, tak DB
> normálně data vrátí. Zkoušel jsem DB, kde se problém vyskytuje
> přeinstalovat na nejnovější verzi Firebirda a provést Gbak a Grestore
> DB, ale výsledek je stále stejný.
>
> Koukal jsem na nějaké rozdíly mezi systémovými tabulkami
> *RDB$COLLATIONS, *ale ty jsou stejné.
>
> Nevíte co s tím?
>
> s pozdravem
>
> Zdeněk
>
>
>
>
> --
> Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny
> „Firebird (CZ)“ ve Skupinách Google.
> Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny,
> zašlete e-mail na adresu firebird_cz...@googlegroups.com.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
> https://groups.google.com/d/msgid/firebird_cz/471a82a6-ba61-41dc-8d75-571566686720n%40googlegroups.com
> <https://groups.google.com/d/msgid/firebird_cz/471a82a6-ba61-41dc-8d75-571566686720n%40googlegroups.com?utm_medium=email&utm_source=footer>.

Radomir Muras

unread,
Oct 31, 2023, 6:53:46 AM10/31/23
to fireb...@googlegroups.com
Zdravím.

Souhasím. Zkusil bych nahradit: - zkombinovat COLLATION WIN_CZ_CI_AI  s Win1250 codem a nikoliv s char.set none....,
¨
R. Muras


út 31. 10. 2023 v 11:34 odesílatel Jiří Činčura <ji...@cincura.net> napsal:

Dusman

unread,
Nov 2, 2023, 4:16:56 AM11/2/23
to Firebird (CZ)

Ahoj, mám to nastavené takhle a je to ve všech DB stejné. Výsledky selectů viz obrázek.
Zajímavé je že pokud to dám to collation za where pouze do SQL dotazu, tak to projde bez problémů, ale při vytváření procedury to nahlásí tu chybu.

s pozdravem
Zdeněk 

select a.rdb$character_set_name from rdb$database a
select * from rdb$collations c where c.rdb$collation_name='WIN_CZ_CI_AI'
select * from rdb$character_sets s where s.rdb$character_set_id=51


firebird.png

Dne úterý 31. října 2023 v 11:53:46 UTC+1 uživatel mur...@gmail.com napsal:

Jiří Činčura

unread,
Nov 2, 2023, 10:27:01 AM11/2/23
to fireb...@googlegroups.com
> select * from rdb$collations c where c.rdb$collation_name='WIN_CZ_CI_AI'
> select * from rdb$character_sets s where s.rdb$character_set_id=51

Tohle neresi jaky charset je nastaveny na sloupci (nebo domene nebo connection). Tohle jsou proste jen charsety a collations v DB.
Reply all
Reply to author
Forward
0 new messages