ROUNDUP 函数给出错误作为 oracle 中的无效标识符

ROUNDUP Function giving error as Invalid Identifier in oracle

我想在我的 oracle 过程中使用 excel 的 ROUNDUP 公式。但是在使用时出现错误

ROUNDUP is Invalid Identifier.

下面是我的代码

SELECT ROUNDUP(15/30) FROM DUAL;

请建议我如何使用它

你不能,ROUNDUP 不是 Oracle 函数(这就是你得到无效标识符错误的原因)。

您可以改为使用 CEIL

SELECT CEIL(15/30) FROM DUAL;
| CEIL(15/30) |
| ----------: |
|           1 |

如果您想四舍五入到给定的精度,那么您可以创建一个用户定义的函数:

CREATE FUNCTION roundup(
  value IN NUMBER,
  precision IN PLS_INTEGER DEFAULT 0
) RETURN NUMBER DETERMINISTIC
IS
BEGIN
  IF precision = 0 THEN
    RETURN CEIL( value );
  ELSE
    RETURN CEIL( value * POWER( 10, precision ) ) / POWER( 10, precision );
  END IF;
END;
/

然后:

SELECT ROUNDUP(0.56789),
       ROUNDUP(0.56789, 1),
       ROUNDUP(0.56789, 2),
       ROUNDUP(0.56789, -1)
FROM DUAL;

输出:

ROUNDUP(0.56789) | ROUNDUP(0.56789,1) | ROUNDUP(0.56789,2) | ROUNDUP(0.56789,-1)
---------------: | -----------------: | -----------------: | ------------------:
               1 |                 .6 |                .57 |                  10

db<>fiddle here