I Oracle, LN()
funktion returnerar den naturliga logaritmen för dess argument, där argumentet är större än 0
.
Med andra ord returnerar den basen-e logaritm för dess argument.
Siffran e , även känt som Eulers tal, är en matematisk konstant ungefär lika med 2,71828.
Syntax
Syntaxen ser ut så här:
LN(n)
Där n
är valfri numerisk datatyp eller icke-numerisk datatyp som implicit kan konverteras till en numerisk datatyp.
Exempel
Här är ett exempel:
SELECT LN(73)
FROM DUAL;
Resultat:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Det här är vad vi får när vi passerar e :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Resultat:
LN(2.718281828459045235360287471352662497757) ________________________________________________ 1
Antalet bråkdelar gör dock skillnad med detta exempel. Så här händer när jag tar bort den sista siffran:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;
Resultat:
LN(2.71828182845904523536028747135266249775) _______________________________________________ 0.9999999999999999999999999999999999999963
Negativa värden
Negativa värden resulterar i felet "utom intervallet":
SELECT LN(-5.490)
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT LN(-5.490) FROM DUAL Error report - ORA-01428: argument '-5.49' is out of range
Noll
Skickar 0
resulterar också i felet "utanför intervallet":
SELECT LN(0)
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT LN(0) FROM DUAL Error report - ORA-01428: argument '0' is out of range
Uttryck
Argumentet kan innehålla uttryck som detta:
SELECT LN(2 * 3)
FROM DUAL;
Resultat:
LN(2*3) ___________________________________________ 1.79175946922805500081247735838070227272
Icke-numeriska argument
Argumentet kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.
Här är ett exempel på vad som händer när argumentet inte uppfyller dessa kriterier:
SELECT LN('Euler')
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT LN('Euler') FROM DUAL Error report - ORA-01722: invalid number
Nollargument
LN()
returnerar null
om argumentet är null
:
SET NULL 'null';
SELECT LN(null)
FROM DUAL;
Resultat:
LN(NULL) ___________ null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när ett nollvärde inträffar som ett resultat av en SQL SELECT
påstående.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Argument saknas
Anropar LN()
med fel antal argument, eller utan några argument resulterar i ett fel:
SELECT LN()
FROM DUAL;
Resultat:
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:
Och:
SELECT LN(10, 2)
FROM DUAL;
Resultat:
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: