In Oracle, de LN()
functie retourneert de natuurlijke logaritme van zijn argument, waarbij het argument groter is dan 0
.
Met andere woorden, het retourneert de base-e logaritme van zijn argument.
Het nummer e , ook bekend als het getal van Euler, is een wiskundige constante die ongeveer gelijk is aan 2,71828.
Syntaxis
De syntaxis gaat als volgt:
LN(n)
Waar n
is elk numeriek gegevenstype of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.
Voorbeeld
Hier is een voorbeeld:
SELECT LN(73)
FROM DUAL;
Resultaat:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Dit is wat we krijgen als we e passeren :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Resultaat:
LN(2.718281828459045235360287471352662497757) ________________________________________________ 1
Het aantal fractionele plaatsen maakt bij dit voorbeeld echter een verschil. Dit gebeurt er als ik het laatste cijfer verwijder:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;
Resultaat:
LN(2.71828182845904523536028747135266249775) _______________________________________________ 0.9999999999999999999999999999999999999963
Negatieve waarden
Negatieve waarden resulteren in een "buiten bereik"-fout:
SELECT LN(-5.490)
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT LN(-5.490) FROM DUAL Error report - ORA-01428: argument '-5.49' is out of range
Nul
Passeren 0
resulteert ook in een "buiten bereik"-fout:
SELECT LN(0)
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT LN(0) FROM DUAL Error report - ORA-01428: argument '0' is out of range
Uitdrukkingen
Het argument kan uitdrukkingen als deze bevatten:
SELECT LN(2 * 3)
FROM DUAL;
Resultaat:
LN(2*3) ___________________________________________ 1.79175946922805500081247735838070227272
Niet-numerieke argumenten
Het argument kan elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.
Hier is een voorbeeld van wat er gebeurt als het argument niet aan die criteria voldoet:
SELECT LN('Euler')
FROM DUAL;
Resultaat:
Error starting at line : 1 in command - SELECT LN('Euler') FROM DUAL Error report - ORA-01722: invalid number
Nullargumenten
LN()
retourneert null
als het argument null
is :
SET NULL 'null';
SELECT LN(null)
FROM DUAL;
Resultaat:
LN(NULL) ___________ null
Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT
uitspraak.
U kunt echter SET NULL
. gebruiken om een andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null
moet worden geretourneerd.
Ontbrekende argumenten
Bellen met LN()
met het verkeerde aantal argumenten, of zonder argumenten resulteert in een fout:
SELECT LN()
FROM DUAL;
Resultaat:
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:
En:
SELECT LN(10, 2)
FROM DUAL;
Resultaat:
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: