我尝试在新数据库上创建一个排序规则(在Windows上为firebird3.0.1。我按照以下步骤创建:
创建数据库'c:\ tmp \ ebizmis.fdb'用户'SYSDBA'密码'123456'默认字符集utf8 collation unicode;
connect'c:\ tmp \ ebizmis.fdb'user'SYSDBA'password'123456';
从UNICODE创建用于utf8的collation py不区分大小写的“LOCALE = zh”;
在此步骤中,提示错误:
Statement failed, SQLSTATE = HY000
unsuccessful metadata update
-CREATE COLLATION PY failed
-Invalid collation attributes
但是在CentOS上它在firebird 3.0.1上是成功的。
当我将大写LOCALE更改为小写时:
create collation py for utf8 from UNICODE case insensitive 'locale=zh';
然后它可以在Windows上执行,但不能用中文拼音顺序对字符进行排序。
答案 0 :(得分:2)
我无法在Windows下构建Firebird 3.0.1,但我可以构建2.5.6。所以我在2.5.6下调试。我发现Firebird没有错误。问题的原因是我没有在icu中包含zh语言环境。所以我从icu网站下载数据并替换3.0.1中的文件。它有效!