Oracle
 sql >> Datenbank >  >> RDS >> Oracle

LN()-Funktion in Oracle

In Oracle das LN() Die Funktion gibt den natürlichen Logarithmus ihres Arguments zurück, wenn das Argument größer als 0 ist .

Mit anderen Worten, es gibt das Basis-e zurück Logarithmus seines Arguments.

Die Zahl e , auch als Eulersche Zahl bekannt, ist eine mathematische Konstante, die ungefähr 2,71828 entspricht.

Syntax

Die Syntax lautet wie folgt:

LN(n)

Wobei n ist ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp, der implizit in einen numerischen Datentyp konvertiert werden kann.

Beispiel

Hier ist ein Beispiel:

SELECT LN(73)
FROM DUAL;

Ergebnis:

                                    LN(73) 
__________________________________________ 
   4.2904594411483911290921088574385425709

Folgendes erhalten wir, wenn wir an e vorbeikommen :

SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;

Ergebnis:

   LN(2.718281828459045235360287471352662497757) 
________________________________________________ 
                                               1

Allerdings macht die Anzahl der Nachkommastellen bei diesem Beispiel einen Unterschied. Folgendes passiert, wenn ich die letzte Ziffer entferne:

SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;

Ergebnis:

   LN(2.71828182845904523536028747135266249775) 
_______________________________________________ 
     0.9999999999999999999999999999999999999963

Negative Werte

Negative Werte führen zu einem „out of range“-Fehler:

SELECT LN(-5.490)
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT LN(-5.490)
FROM DUAL
Error report -
ORA-01428: argument '-5.49' is out of range

Null

Übergeben von 0 führt auch zu einem „out of range“-Fehler:

SELECT LN(0)
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT LN(0)
FROM DUAL
Error report -
ORA-01428: argument '0' is out of range

Ausdrücke

Das Argument kann Ausdrücke wie diesen enthalten:

SELECT LN(2 * 3)
FROM DUAL;

Ergebnis:

                                    LN(2*3) 
___________________________________________ 
   1.79175946922805500081247735838070227272

Nicht numerische Argumente

Das Argument kann ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp sein, der implizit in einen numerischen Datentyp konvertiert werden kann.

Hier ist ein Beispiel dafür, was passiert, wenn das Argument diese Kriterien nicht erfüllt:

SELECT LN('Euler')
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT LN('Euler')
FROM DUAL
Error report -
ORA-01722: invalid number

Null-Argumente

LN() gibt null zurück wenn das Argument null ist :

SET NULL 'null';

SELECT LN(null)
FROM DUAL;

Ergebnis:

   LN(NULL) 
___________ 
       null 

Standardmäßig geben SQLcl und SQL*Plus immer dann ein Leerzeichen zurück, wenn als Ergebnis eines SQL SELECT ein Nullwert auftritt Erklärung.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Fehlende Argumente

Aufruf von LN() mit der falschen Anzahl von Argumenten oder ohne Argumente führt zu einem Fehler:

SELECT LN()
FROM DUAL;

Ergebnis:

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:

Und:

SELECT LN(10, 2)
FROM DUAL;

Ergebnis:

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: