Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione LN() in Oracle

In Oracle, il LN() La funzione restituisce il logaritmo naturale del suo argomento, dove l'argomento è maggiore di 0 .

In altre parole, restituisce la base-e logaritmo del suo argomento.

Il numero e , noto anche come numero di Eulero, è una costante matematica approssimativamente uguale a 2,71828.

Sintassi

La sintassi è questa:

LN(n)

Dove n è qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.

Esempio

Ecco un esempio:

SELECT LN(73)
FROM DUAL;

Risultato:

                                    LN(73) 
__________________________________________ 
   4.2904594411483911290921088574385425709

Ecco cosa otteniamo quando superiamo e :

SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;

Risultato:

   LN(2.718281828459045235360287471352662497757) 
________________________________________________ 
                                               1

Tuttavia, il numero di posti frazionari fa la differenza con questo esempio. Ecco cosa succede quando rimuovo l'ultima cifra:

SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;

Risultato:

   LN(2.71828182845904523536028747135266249775) 
_______________________________________________ 
     0.9999999999999999999999999999999999999963

Valori negativi

I valori negativi generano un errore "fuori intervallo":

SELECT LN(-5.490)
FROM DUAL;

Risultato:

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

Passaggio di 0 genera anche un errore "fuori intervallo":

SELECT LN(0)
FROM DUAL;

Risultato:

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

Espressioni

L'argomento può includere espressioni come questa:

SELECT LN(2 * 3)
FROM DUAL;

Risultato:

                                    LN(2*3) 
___________________________________________ 
   1.79175946922805500081247735838070227272

Argomenti non numerici

L'argomento può essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.

Ecco un esempio di cosa succede quando l'argomento non soddisfa quei criteri:

SELECT LN('Euler')
FROM DUAL;

Risultato:

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

Argomenti nulli

LN() restituisce null se l'argomento è null :

SET NULL 'null';

SELECT LN(null)
FROM DUAL;

Risultato:

   LN(NULL) 
___________ 
       null 

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Argomenti mancanti

Chiamando LN() con il numero errato di argomenti o senza argomenti genera un errore:

SELECT LN()
FROM DUAL;

Risultato:

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:

E:

SELECT LN(10, 2)
FROM DUAL;

Risultato:

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: