W Oracle POWER()
funkcja zwraca swój pierwszy argument podniesiony do potęgi drugiego argumentu.
Składnia
Składnia wygląda tak:
POWER(n2, n1)
Każdy argument może być dowolnym numerycznym typem danych lub dowolnym nienumerycznym typem danych, który można niejawnie przekonwertować na numeryczny typ danych.
Oba argumenty mogą być dowolną liczbą, jeśli n2
jest ujemna, to n1
musi być liczbą całkowitą.
Przykład
Oto przykład do zademonstrowania:
SELECT POWER(8, 2)
FROM DUAL;
Wynik:
POWER(8,2) _____________ 64
A tutaj używa części ułamkowej w drugim argumencie:
SELECT POWER(8, 2.5)
FROM DUAL;
Wynik:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Jednak użycie części ułamkowej jest możliwe tylko wtedy, gdy pierwszy argument jest dodatni.
Wartości ujemne
Jak wspomniano, jeśli pierwszy argument jest ujemny, drugi argument musi być liczbą całkowitą:
SELECT POWER(-8, 2)
FROM DUAL;
Wynik:
POWER(-8,2) ______________ 64
Oto, co się dzieje, gdy druga liczba nie jest liczbą całkowitą:
SELECT POWER(-8, 2.5)
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Argumenty nieliczbowe
Argumentami może być dowolny numeryczny typ danych lub dowolny nienumeryczny typ danych, który można niejawnie przekonwertować na numeryczny typ danych.
Oto przykład tego, co się dzieje, gdy argumenty nie spełniają tych kryteriów:
SELECT POWER('Gosh', 'Dang')
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT POWER('Gosh', 'Dang') FROM DUAL Error report - ORA-01722: invalid number
Argumenty zerowe
POWER()
zwraca null
jeśli jakikolwiek argument jest null
:
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL;
Wynik:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL) ________________ ________________ ___________________ null null null
Domyślnie SQLcl i SQL*Plus zwracają spację za każdym razem, gdy w wyniku polecenia SQL SELECT
wystąpi wartość null oświadczenie.
Możesz jednak użyć SET NULL
aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null
należy zwrócić.
Brakujące argumenty
Wywołanie POWER()
bez żadnych argumentów powoduje błąd:
SELECT POWER()
FROM DUAL;
Wynik:
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:
I to samo dotyczy wywoływania go ze zbyt dużą liczbą argumentów:
SELECT POWER(10, 2, 3)
FROM DUAL;
Wynik:
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: