Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Oracle和SQL Server`CEIL/天花板`函数返回不同的结果_Sql Server_Oracle_Ceil - Fatal编程技术网

Sql server Oracle和SQL Server`CEIL/天花板`函数返回不同的结果

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 我能看到的唯一让您获得不同结

在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

我能看到的唯一让您获得不同结果的方法是,如果有人在您的架构中创建了一个用户定义的
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