达梦数据库对于整数的除法运算和oracle的是不同的,DM中默认会舍弃小数,直接取整数,也不会四舍五入再取整。但是DM提供参数CALC_AS_DECIMAL来控制。
具体参数详解如下:
默认情况:
查看该参数的默认值:
select para_name,para_value from v$dm_ini where para_name='CALC_AS_DECIMAL';
整数相除测试:
从以上测试结果可以得出,整数相除,只会取整,也不会进行四舍五入。
非整数相除测试:
从以上测试可以得出,非整数相处,处理结果和oracle一样,值是多少就是多少,不会取整。
调整CALC_AS_DECIMAL:
根据实际需求进行调整,将该参数设置为1可以达到和oracle一样的效果。
设置CALC_AS_DECIMAL参数值为1,并重启数据库生效。
sp_set_para_value(2,'CALC_AS_DECIMAL',1);
重启数据库服务,使该参数生效。
select para_name,para_value from v$dm_ini where para_name='CALC_AS_DECIMAL';
整数相除验证:
可以得出,整数相除也会返回具体的值,不会再进行去整操作。