En Oracle, el CEIL()
la función devuelve el entero más pequeño que es mayor o igual que su argumento.
Sintaxis
La sintaxis es así:
CEIL(n)
Donde n
puede ser cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se pueda convertir implícitamente a un tipo de dato numérico.
Ejemplo
He aquí un ejemplo:
SELECT CEIL(7.15)
FROM DUAL;
Resultado:
CEIL(7.15) _____________ 8
Pasar un valor negativo produce el siguiente resultado:
SELECT CEIL(-7.15)
FROM DUAL;
Resultado:
CEIL(-7.15) ______________ -7
Comparado con ROUND()
El CEIL()
la función es diferente a ROUND()
función. El ROUND()
la función redondearía el número hacia abajo en algunos casos, mientras que CEIL()
siempre devuelve el valor entero más pequeño mayor o igual que su argumento.
SELECT
CEIL(7.15),
ROUND(7.15)
FROM DUAL;
Resultado:
CEIL(7.15) ROUND(7.15) _____________ ______________ 8 7
Además, ROUND()
nos permite especificar el número de decimales a redondear:
SELECT
CEIL(7.15),
ROUND(7.15, 1)
FROM DUAL;
Resultado:
CEIL(7.15) ROUND(7.15,1) _____________ ________________ 8 7.2
Argumento no numérico
El argumento puede ser cualquier tipo de datos numéricos o cualquier tipo de datos no numéricos que se pueda convertir implícitamente en un tipo de datos numéricos.
Esto es lo que sucede cuando proporcionamos un argumento no numérico que no se puede convertir a un tipo de datos numérico:
SELECT CEIL('Oops!')
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT CEIL('Oops!') FROM DUAL Error report - ORA-01722: invalid number
Valores nulos
Pasando null
a CEIL()
devuelve null
:
SET NULL 'null';
SELECT CEIL(null)
FROM DUAL;
Resultado:
CEIL(NULL) _____________ null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null
ocurre como resultado de un SQL SELECT
declaración.
Sin embargo, puede usar SET NULL
para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null
debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a CEIL()
sin pasar ningún argumento devuelve un error:
SELECT CEIL()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT CEIL() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT CEIL(1, 2)
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT CEIL(1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Oracle también tiene un FLOOR()
función que devuelve el entero más grande igual o menor que su argumento.