Oracle
 sql >> база данни >  >> RDS >> Oracle

LN() Функция в Oracle

В 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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Брой петъци между две дати

  2. СЪЗДАЙТЕ Oracle процедура

  3. алтернатива на listagg в Oracle?

  4. Как се съхраняват датите в Oracle?

  5. Как мога да задам персонализиран формат за дата и час в Oracle SQL Developer?