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: