在Windows上创建firebird(3.0.1)db错误的排序规则但在centos上成功

时间:2016-11-06 12:41:35

标签: firebird collation

我尝试在新数据库上创建一个排序规则(在Windows上为firebird3.0.1。我按照以下步骤创建:

  1. 创建数据库'c:\ tmp \ ebizmis.fdb'用户'SYSDBA'密码'123456'默认字符集utf8 collat​​ion unicode;

  2. connect'c:\ tmp \ ebizmis.fdb'user'SYSDBA'password'123456';

  3. 从UNICODE创建用于utf8的collat​​ion py不区分大小写的“LOCALE = zh”;

  4. 在此步骤中,提示错误:

    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上执行,但不能用中文拼音顺序对字符进行排序。

1 个答案:

答案 0 :(得分:2)

我无法在Windows下构建Firebird 3.0.1,但我可以构建2.5.6。所以我在2.5.6下调试。我发现Firebird没有错误。问题的原因是我没有在icu中包含zh语言环境。所以我从icu网站下载数据并替换3.0.1中的文件。它有效!