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: