In Oracle, il POWER()
La funzione restituisce il suo primo argomento elevato alla potenza del suo secondo argomento.
Sintassi
La sintassi è questa:
POWER(n2, n1)
Ogni argomento può essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.
Entrambi gli argomenti possono essere qualsiasi numero, tuttavia, se n2
è negativo, quindi n1
deve essere un numero intero.
Esempio
Ecco un esempio da dimostrare:
SELECT POWER(8, 2)
FROM DUAL;
Risultato:
POWER(8,2) _____________ 64
E qui sta usando una parte frazionaria nel secondo argomento:
SELECT POWER(8, 2.5)
FROM DUAL;
Risultato:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Tuttavia, l'utilizzo di una parte frazionaria è possibile solo quando il primo argomento è positivo.
Valori negativi
Come accennato, se il primo argomento è negativo, il secondo argomento deve essere un intero:
SELECT POWER(-8, 2)
FROM DUAL;
Risultato:
POWER(-8,2) ______________ 64
Ecco cosa succede quando il secondo numero non è un numero intero:
SELECT POWER(-8, 2.5)
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Argomenti non numerici
Gli argomenti possono essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.
Ecco un esempio di cosa succede quando gli argomenti non soddisfano quel criterio:
SELECT POWER('Gosh', 'Dang')
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT POWER('Gosh', 'Dang') FROM DUAL Error report - ORA-01722: invalid number
Argomenti nulli
POWER()
restituisce null
se un argomento è null
:
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL;
Risultato:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL) ________________ ________________ ___________________ null null null
Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore null come risultato di un SQL SELECT
dichiarazione.
Tuttavia, puoi utilizzare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Argomenti mancanti
Chiamando POWER()
senza alcun argomento genera un errore:
SELECT POWER()
FROM DUAL;
Risultato:
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:
E la stessa cosa vale quando lo si chiama con troppi argomenti:
SELECT POWER(10, 2, 3)
FROM DUAL;
Risultato:
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: