Oracle
 sql >> Datenbank >  >> RDS >> Oracle

POWER()-Funktion in Oracle

In Oracle die POWER() Die Funktion gibt ihr erstes Argument potenziert mit ihrem zweiten Argument zurück.

Syntax

Die Syntax lautet wie folgt:

POWER(n2, n1)

Jedes Argument kann ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp sein, der implizit in einen numerischen Datentyp konvertiert werden kann.

Beide Argumente können jedoch eine beliebige Zahl sein, wenn n2 negativ ist, dann n1 muss eine Ganzzahl sein.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT POWER(8, 2) 
FROM DUAL;

Ergebnis:

   POWER(8,2) 
_____________ 
           64 

Und hier verwendet es einen Bruchteil im zweiten Argument:

SELECT POWER(8, 2.5) 
FROM DUAL;

Ergebnis:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Die Verwendung eines Bruchteils ist jedoch nur möglich, wenn das erste Argument positiv ist.

Negative Werte

Wie bereits erwähnt, muss das zweite Argument eine ganze Zahl sein, wenn das erste Argument negativ ist:

SELECT POWER(-8, 2) 
FROM DUAL;

Ergebnis:

   POWER(-8,2) 
______________ 
            64 

Folgendes passiert, wenn die zweite Zahl keine Ganzzahl ist:

SELECT POWER(-8, 2.5) 
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT POWER(-8, 2.5) 
FROM DUAL
Error report -
ORA-01428: argument '-8' is out of range

Nicht numerische Argumente

Die Argumente können ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp sein, der implizit in einen numerischen Datentyp konvertiert werden kann.

Hier ist ein Beispiel dafür, was passiert, wenn die Argumente dieses Kriterium nicht erfüllen:

SELECT POWER('Gosh', 'Dang')
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number

Null-Argumente

POWER() gibt null zurück wenn irgendein Argument null ist :

SET NULL 'null';

SELECT 
    POWER(null, 3),
    POWER(8, null),
    POWER(null, null)
FROM DUAL;

Ergebnis:

   POWER(NULL,3)    POWER(8,NULL)    POWER(NULL,NULL) 
________________ ________________ ___________________ 
            null             null                null 

Standardmäßig geben SQLcl und SQL*Plus immer dann ein Leerzeichen zurück, wenn als Ergebnis eines SQL SELECT ein Nullwert auftritt Erklärung.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Fehlende Argumente

Aufruf von POWER() ohne Argumente führt zu einem Fehler:

SELECT POWER()
FROM DUAL;

Ergebnis:

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:

Und dasselbe gilt, wenn es mit zu vielen Argumenten aufgerufen wird:

SELECT POWER(10, 2, 3)
FROM DUAL;

Ergebnis:

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: