sql >> Base de Datos >  >> RDS >> Oracle

Función LN() en Oracle

En Oracle, el LN() la función devuelve el logaritmo natural de su argumento, donde el argumento es mayor que 0 .

En otras palabras, devuelve la base-e logaritmo de su argumento.

El número e , también conocido como número de Euler, es una constante matemática aproximadamente igual a 2,71828.

Sintaxis

La sintaxis es así:

LN(n)

Donde n es cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se puede convertir implícitamente a un tipo de dato numérico.

Ejemplo

He aquí un ejemplo:

SELECT LN(73)
FROM DUAL;

Resultado:

                                    LN(73) 
__________________________________________ 
   4.2904594411483911290921088574385425709

Esto es lo que obtenemos cuando aprobamos e :

SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;

Resultado:

   LN(2.718281828459045235360287471352662497757) 
________________________________________________ 
                                               1

Sin embargo, el número de lugares fraccionarios hace una diferencia con este ejemplo. Esto es lo que sucede cuando elimino el último dígito:

SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;

Resultado:

   LN(2.71828182845904523536028747135266249775) 
_______________________________________________ 
     0.9999999999999999999999999999999999999963

Valores negativos

Los valores negativos dan como resultado un error "fuera de rango":

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

Cero

Pasando 0 también da como resultado un error "fuera de rango":

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

Expresiones

El argumento puede incluir expresiones como esta:

SELECT LN(2 * 3)
FROM DUAL;

Resultado:

                                    LN(2*3) 
___________________________________________ 
   1.79175946922805500081247735838070227272

Argumentos no numéricos

El argumento puede ser cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se pueda convertir implícitamente a un tipo de dato numérico.

Aquí hay un ejemplo de lo que sucede cuando el argumento no cumple con ese criterio:

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() devuelve null si el argumento es null :

SET NULL 'null';

SELECT LN(null)
FROM DUAL;

Resultado:

   LN(NULL) 
___________ 
       null 

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo como resultado de un SQL SELECT declaración.

Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.

Argumentos faltantes

Llamando a LN() con el número incorrecto de argumentos, o sin ningún argumento da como resultado un error:

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:

Y:

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: