In Oracle, de POWER() functie retourneert zijn eerste argument verheven tot de macht van zijn tweede argument.
Syntaxis
De syntaxis gaat als volgt:
POWER(n2, n1) Elk argument kan elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.
Beide argumenten kunnen echter elk willekeurig getal zijn, als n2 negatief is, dan n1 moet een geheel getal zijn.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT POWER(8, 2)
FROM DUAL; Resultaat:
POWER(8,2)
_____________
64 En hier gebruikt het een fractioneel deel in het tweede argument:
SELECT POWER(8, 2.5)
FROM DUAL; Resultaat:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Het gebruik van een fractioneel deel is echter alleen mogelijk als het eerste argument positief is.
Negatieve waarden
Zoals gezegd, als het eerste argument negatief is, dan moet het tweede argument een geheel getal zijn:
SELECT POWER(-8, 2)
FROM DUAL; Resultaat:
POWER(-8,2)
______________
64 Dit is wat er gebeurt als het tweede getal geen geheel getal is:
SELECT POWER(-8, 2.5)
FROM DUAL; Resultaat:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Niet-numerieke argumenten
De argumenten kunnen elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.
Hier is een voorbeeld van wat er gebeurt als de argumenten niet aan die criteria voldoen:
SELECT POWER('Gosh', 'Dang')
FROM DUAL; Resultaat:
Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number Nullargumenten
POWER() retourneert null als een argument null is :
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL; Resultaat:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL)
________________ ________________ ___________________
null null null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT uitspraak.
U kunt echter SET NULL . gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.
Ontbrekende argumenten
POWER() . aanroepen zonder argumenten resulteert in een fout:
SELECT POWER()
FROM DUAL; Resultaat:
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:
En hetzelfde geldt als je het met te veel argumenten aanroept:
SELECT POWER(10, 2, 3)
FROM DUAL; Resultaat:
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: