Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione POWER() in Oracle

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: