Sql server Oracle和SQL Server`CEIL/天花板`函数返回不同的结果
在Oracle中:Sql server Oracle和SQL Server`CEIL/天花板`函数返回不同的结果,sql-server,oracle,ceil,Sql Server,Oracle,Ceil,在Oracle中: 输入:从Dual选择CEIL(5.416579) 产出:5.42 在SQL Server中: 输入:选择天花板(5.416579) 产出:6 根据Oracle和SQL Server的要求,CEIL/天花板函数返回一个整数值,但在这里它们返回的结果不同。在您的系统上,精度设置很可能已更改为最小精度2。状态: 语法 CEIL(n) 目的 CEIL返回大于或等于n的最小整数 因此,在Oracle中,CEIL(5.416579)函数将始终返回6 我能看到的唯一让您获得不同结
- 输入:
从Dual选择CEIL(5.416579)
- 产出:5.42
- 输入:
选择天花板(5.416579)
- 产出:6
根据Oracle和SQL Server的要求,CEIL/天花板函数返回一个整数值,但在这里它们返回的结果不同。在您的系统上,精度设置很可能已更改为最小精度2。状态: 语法
CEIL(n)
目的
CEIL
返回大于或等于n
的最小整数
因此,在Oracle中,CEIL(5.416579)
函数将始终返回6
我能看到的唯一让您获得不同结果的方法是,如果有人在您的架构中创建了一个用户定义的CEIL
函数,并且该函数正在被调用,而不是内置函数:
(不要这样做)
CREATE FUNCTION SCHEMA\u NAME.CEIL(n编号)
返回号码
像
i整数:=TRUNC(n*100);
开始
如果我不是100那么
返回(i+1)/100;
其他的
返回i/100;
如果结束;
终止
/
但即使如此,SELECT-cel(5.416579)FROM-DUAL
似乎使用了全局内置函数并返回6
。要覆盖此选项,必须显式声明包:
从DUAL中选择SCHEMA_NAME.CEIL(5.416579)
产出:
检查您是否没有另一个名为
CEIL
的函数,但如果没有该函数,您所描述的行为应该是不可能的。您能否澄清您正在使用的Oracle DB版本,由于我无法重现您对Oracle Database 11g Enterprise Edition 11.2.0.4.0-64位产品版的观察结果,Oracle 18返回6:状态“CEIL(n)
返回大于或等于n
”的最小整数,因此CEIL(5.416579)
将返回6
。
5.42