Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja LN() w Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć się z bazą danych Oracle 11 z . internet

  2. Jak zignorować znaki ampersand w skrypcie SQL uruchamianym z programu SQL Plus?

  3. Różnica w obsłudze przestrzeni między Oracle a SQL Server

  4. Oracle — jakiego pliku nazw TNS używam?

  5. ORA-01264 w fizycznej gotowości