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: