W Oracle LN()
funkcja zwraca logarytm naturalny swojego argumentu, gdzie argument jest większy niż 0
.
Innymi słowy, zwraca podstawę-e logarytm argumentu.
Liczba e , znana również jako liczba Eulera, jest stałą matematyczną w przybliżeniu równą 2,71828.
Składnia
Składnia wygląda tak:
LN(n)
Gdzie n
to dowolny numeryczny typ danych lub dowolny nienumeryczny typ danych, który można niejawnie przekonwertować na numeryczny typ danych.
Przykład
Oto przykład:
SELECT LN(73)
FROM DUAL;
Wynik:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Oto, co otrzymujemy, gdy mijamy e :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Wynik:
LN(2.718281828459045235360287471352662497757) ________________________________________________ 1
Jednak liczba miejsc ułamkowych robi różnicę w tym przykładzie. Oto, co się stanie, gdy usunę ostatnią cyfrę:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;
Wynik:
LN(2.71828182845904523536028747135266249775) _______________________________________________ 0.9999999999999999999999999999999999999963
Wartości ujemne
Wartości ujemne skutkują błędem „poza zakresem”:
SELECT LN(-5.490)
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT LN(-5.490) FROM DUAL Error report - ORA-01428: argument '-5.49' is out of range
Zero
Przekazywanie 0
powoduje również błąd „poza zakresem”:
SELECT LN(0)
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT LN(0) FROM DUAL Error report - ORA-01428: argument '0' is out of range
Wyrażenia
Argument może zawierać wyrażenia takie jak:
SELECT LN(2 * 3)
FROM DUAL;
Wynik:
LN(2*3) ___________________________________________ 1.79175946922805500081247735838070227272
Argumenty nieliczbowe
Argumentem 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 argument nie spełnia tych kryteriów:
SELECT LN('Euler')
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT LN('Euler') FROM DUAL Error report - ORA-01722: invalid number
Argumenty zerowe
LN()
zwraca null
jeśli argument jest null
:
SET NULL 'null';
SELECT LN(null)
FROM DUAL;
Wynik:
LN(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 LN()
z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:
SELECT LN()
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT LN() 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:
Oraz:
SELECT LN(10, 2)
FROM DUAL;
Wynik:
Error starting at line : 1 in command - SELECT LN(10, 2) 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: