早上好!在我的系统中,从firebird 2.5迁移到3.0之后,许多报告和其他函数开始出现问题,指出所期望的是整数,而当前的是大整数。我查看了一下,发现在3.0中使用count的一些搜索返回一个bigint列,而在2.5中返回一个integer列。
为了解决我所知道的问题,我必须对每一个给出错误、经过测试和工作的东西进行一次投射,但是这是一个很大的系统,它会给出很多工作。
有人知道在火鸟身上解决这个问题的方法吗?一些配置,还是什么?
最佳答案
它没有配置;Firebird 3 release notes only say:COUNT()
聚合器现在将其结果返回为BIGINT
,而不是INTEGER
。
您需要在查询或代码中显式应用强制转换,或者查看数据访问库是否可以显式请求整数,而不仅仅是动态类型。例如,在Java世界中,JDBCAPI有一个显式的getInt
,只要值适合32位整数,它就可以为BIGINT
工作。
关于database - Firebird 3.0 Bigint与Firebird 2.5 Integer计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41039003/