En Oracle, el POWER() función devuelve su primer argumento elevado a la potencia de su segundo argumento.
Sintaxis
La sintaxis es así:
POWER(n2, n1) Cada argumento 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.
Ambos argumentos pueden ser cualquier número, sin embargo, si n2 es negativo, entonces n1 debe ser un número entero.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT POWER(8, 2)
FROM DUAL; Resultado:
POWER(8,2)
_____________
64 Y aquí está usando una parte fraccionaria en el segundo argumento:
SELECT POWER(8, 2.5)
FROM DUAL; Resultado:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Sin embargo, usar una parte fraccionaria solo es posible cuando el primer argumento es positivo.
Valores negativos
Como se mencionó, si el primer argumento es negativo, entonces el segundo argumento debe ser un número entero:
SELECT POWER(-8, 2)
FROM DUAL; Resultado:
POWER(-8,2)
______________
64 Esto es lo que sucede cuando el segundo número no es un número entero:
SELECT POWER(-8, 2.5)
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Argumentos no numéricos
Los argumentos pueden 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.
Aquí hay un ejemplo de lo que sucede cuando los argumentos no satisfacen ese criterio:
SELECT POWER('Gosh', 'Dang')
FROM DUAL; Resultado:
Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number Argumentos nulos
POWER() devuelve null si algún argumento es null :
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL; Resultado:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL)
________________ ________________ ___________________
null null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo 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.
Argumentos faltantes
Llamando a POWER() sin ningún argumento da como resultado un error:
SELECT POWER()
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT POWER() 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 lo mismo se aplica cuando se llama con demasiados argumentos:
SELECT POWER(10, 2, 3)
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT POWER(10, 2, 3) 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: