DB2执行COUNT(*)报错 SQL0802N Arithmetic overflow or other arithmetic exception occurred. SQLSTATE=22003
db2 "select count(*) from t1;
1
-----------
SQL0802N Arithmetic overflow or other arithmetic exception occurred.
SQLSTATE=22003
这是返回精度不够,导致无法显示,此处可以使用 COUNT_BIG 函数
db2 "select count(*) from t1;
1
---------------------------------
16502581713.
1 record(s) selected.
附【来源IBM官网数据库版本11.1】:
CREATE FUNCTION RICK.COUNT() RETURNS DECIMAL(15,0)
SOURCE SYSIBM.COUNT_BIG();
SET CURRENT PATH RICK, SYSTEM PATH;
SELECT COUNT(*) FROM EMPLOYEE;
CREATE FUNCTION RICK.COUNT(CHAR()) RETURNS DOUBLE
SOURCE SYSIBM.COUNT_BIG(CHAR());
SELECT COUNT(DISTINCT WORKDEPT) FROM EMPLOYEE;