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: