在我的系统上,从 Firebird 2.5 迁移到 3.0 后,许多报告和其他函数开始出现问题,指出预期的是 Integer 而当前的是 LargeInt
。我看了一下,发现一些在 3.0 中使用计数的搜索返回一个 bigInt
列,而在 2.5 中它返回一个整数列。
为了解决我所知道的方法,我将不得不对所有出现错误、经过测试和工作的东西进行强制转换,但这是一个大系统,它会提供很多工作。
有谁知道有什么方法可以在 Firebird 中解决这个问题吗?一些配置,还是什么?
最佳答案
它没有配置; Firebird 3 release notes only say :
The
COUNT()
aggregator now returns its result asBIGINT
instead ofINTEGER
.
您需要在查询或代码中显式应用强制转换,或者查看您的数据访问库是否可以显式请求整数而不仅仅是动态类型。例如,在 Java 世界中,JDBC API 有一个明确的 getInt
,只要值适合 32 位整数,它就可以为 BIGINT
工作。
关于database - 计算 Firebird 3.0 bigint 与 Firebird 2.5 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41039003/