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: