Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função LN() no Oracle


No Oracle, o LN() função retorna o logaritmo natural de seu argumento, onde o argumento é maior que 0 .

Em outras palavras, ele retorna a base-e logaritmo de seu argumento.

O número e , também conhecido como número de Euler, é uma constante matemática aproximadamente igual a 2,71828.

Sintaxe


A sintaxe fica assim:
LN(n)

Onde n é qualquer tipo de dados numérico ou qualquer tipo de dados não numérico que possa ser convertido implicitamente em um tipo de dados numérico.

Exemplo


Aqui está um exemplo:
SELECT LN(73)
FROM DUAL;

Resultado:
                                    LN(73) 
__________________________________________ 
   4.2904594411483911290921088574385425709

Aqui está o que recebemos quando passamos por e :
SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;

Resultado:
   LN(2.718281828459045235360287471352662497757) 
________________________________________________ 
                                               1

No entanto, o número de casas fracionárias faz a diferença neste exemplo. Aqui está o que acontece quando eu removo o último dígito:
SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;

Resultado:
   LN(2.71828182845904523536028747135266249775) 
_______________________________________________ 
     0.9999999999999999999999999999999999999963

Valores negativos


Valores negativos resultam em um erro "fora do intervalo":
SELECT LN(-5.490)
FROM DUAL;

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


Passando 0 também resulta em um erro "fora do intervalo":
SELECT LN(0)
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT LN(0)
FROM DUAL
Error report -
ORA-01428: argument '0' is out of range

Expressões


O argumento pode incluir expressões como esta:
SELECT LN(2 * 3)
FROM DUAL;

Resultado:
                                    LN(2*3) 
___________________________________________ 
   1.79175946922805500081247735838070227272

Argumentos não numéricos


O argumento pode ser qualquer tipo de dados numérico ou qualquer tipo de dados não numérico que possa ser convertido implicitamente em um tipo de dados numérico.

Aqui está um exemplo do que acontece quando o argumento não satisfaz esse critério:
SELECT LN('Euler')
FROM DUAL;

Resultado:
Error starting at line : 1 in command -
SELECT LN('Euler')
FROM DUAL
Error report -
ORA-01722: invalid number

Argumentos nulos


LN() retorna null se o argumento for null :
SET NULL 'null';

SELECT LN(null)
FROM DUAL;

Resultado:
   LN(NULL) 
___________ 
       null 

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Argumentos ausentes


Chamando LN() com o número errado de argumentos ou sem argumentos resulta em um erro:
SELECT LN()
FROM DUAL;

Resultado:
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;

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