В Oracle, LN()
функцията връща естествения логаритъм на своя аргумент, където аргументът е по-голям от 0
.
С други думи, връща базата-e логаритъм на неговия аргумент.
Числото e , известен също като числото на Ойлер, е математическа константа, приблизително равна на 2,71828.
Синтаксис
Синтаксисът е така:
LN(n)
Където n
е всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.
Пример
Ето един пример:
SELECT LN(73)
FROM DUAL;
Резултат:
LN(73) __________________________________________ 4.2904594411483911290921088574385425709
Ето какво получаваме, когато преминем e :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;
Резултат:
LN(2.718281828459045235360287471352662497757) ________________________________________________ 1
Въпреки това, броят на дробните места прави разлика с този пример. Ето какво се случва, когато премахна последната цифра:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;
Резултат:
LN(2.71828182845904523536028747135266249775) _______________________________________________ 0.9999999999999999999999999999999999999963
Отрицателни стойности
Отрицателните стойности водят до грешка „извън обхвата“:
SELECT LN(-5.490)
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT LN(-5.490) FROM DUAL Error report - ORA-01428: argument '-5.49' is out of range
Нула
Подаване на 0
също води до грешка „извън обхвата“:
SELECT LN(0)
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT LN(0) FROM DUAL Error report - ORA-01428: argument '0' is out of range
Изрази
Аргументът може да включва изрази като този:
SELECT LN(2 * 3)
FROM DUAL;
Резултат:
LN(2*3) ___________________________________________ 1.79175946922805500081247735838070227272
Нечислови аргументи
Аргументът може да бъде всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.
Ето пример за това какво се случва, когато аргументът не отговаря на този критерий:
SELECT LN('Euler')
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT LN('Euler') FROM DUAL Error report - ORA-01722: invalid number
Нулеви аргументи
LN()
връща null
ако аргументът е null
:
SET NULL 'null';
SELECT LN(null)
FROM DUAL;
Резултат:
LN(NULL) ___________ null
По подразбиране SQLcl и SQL*Plus връщат празно пространство, когато се появи нулева стойност в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Липсващи аргументи
Извикване на LN()
с грешен брой аргументи или без никакви аргументи води до грешка:
SELECT LN()
FROM DUAL;
Резултат:
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:
И:
SELECT LN(10, 2)
FROM DUAL;
Резултат:
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: