注册
计算时报错:数据溢出
专栏/Database Thinking/ 文章详情 /

计算时报错:数据溢出

胡li 2025/10/10 103 1 0
摘要 计算时报-6102: 数据溢出错误

问题描述

执行以下SQL,报-6102: 数据溢出

SELECT MAX(20250807 * 1000000000 + 194340 * 100 +1)

运行截图如下:
image.png

解决办法

方法一

登录数据库后,将CALC_AS_DECIMAL配置成3

sp_set_para_value(2,'CALC_AS_DECIMAL',3);

运行截图如下:
image.png
3、重启数据库生效
4、再次执行select,正常运行

方法二

在不能改配置的前提下可以使用以下SQL绕过

SELECT MAX(20250807 * 1000000000.0 + 194340 * 100 +1)

运行截图如下:
image.png

参数解释

参数名 缺省值 属性 说明
CALC_AS_DECIMAL 0 静态 0:默认值,表示整数类型的除法、整数与字符或 BINARY 串的所有四则运算,结果都处理成整数;1:表示整数类型的除法全部转换为 DECIMAL 处理;2:表示将整数与字符或 BINARY 串的所有四则运算都转换为 DECIMAL 处理;3:所有涉及整型的四则运算全部转换为 DECIMAL 处理。注:该参数只有在USE_PLN_POOL为0或1时有效。当USE_PLN_POOL为2或3时,按照CALC_AS_DECIMAL=2处理
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服