Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction LN() dans Oracle

Dans Oracle, le LN() la fonction renvoie le logarithme naturel de son argument, où l'argument est supérieur à 0 .

En d'autres termes, il renvoie la base-e logarithme de son argument.

Le nombre e , également connu sous le nom de nombre d'Euler, est une constante mathématique approximativement égale à 2,71828.

Syntaxe

La syntaxe ressemble à ceci :

LN(n)

n est tout type de données numérique ou tout type de données non numérique qui peut être implicitement converti en un type de données numérique.

Exemple

Voici un exemple :

SELECT LN(73)
FROM DUAL;

Résultat :

                                    LN(73) 
__________________________________________ 
   4.2904594411483911290921088574385425709

Voici ce que nous obtenons lorsque nous passons e :

SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL;

Résultat :

   LN(2.718281828459045235360287471352662497757) 
________________________________________________ 
                                               1

Cependant, le nombre de places fractionnaires fait une différence avec cet exemple. Voici ce qui se passe lorsque je supprime le dernier chiffre :

SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL;

Résultat :

   LN(2.71828182845904523536028747135266249775) 
_______________________________________________ 
     0.9999999999999999999999999999999999999963

Valeurs négatives

Les valeurs négatives entraînent une erreur "hors plage" :

SELECT LN(-5.490)
FROM DUAL;

Résultat :

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

Zéro

Passer 0 entraîne également une erreur « hors plage » :

SELECT LN(0)
FROM DUAL;

Résultat :

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

Expressions

L'argument peut inclure des expressions telles que :

SELECT LN(2 * 3)
FROM DUAL;

Résultat :

                                    LN(2*3) 
___________________________________________ 
   1.79175946922805500081247735838070227272

Arguments non numériques

L'argument peut être n'importe quel type de données numérique ou n'importe quel type de données non numérique qui peut être implicitement converti en un type de données numérique.

Voici un exemple de ce qui se passe lorsque l'argument ne satisfait pas ce critère :

SELECT LN('Euler')
FROM DUAL;

Résultat :

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

Arguments nuls

LN() renvoie null si l'argument est null :

SET NULL 'null';

SELECT LN(null)
FROM DUAL;

Résultat :

   LN(NULL) 
___________ 
       null 

Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois qu'une valeur nulle se produit à la suite d'un SQL SELECT déclaration.

Cependant, vous pouvez utiliser SET NULL pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null doit être retourné.

Arguments manquants

Appel de LN() avec le mauvais nombre d'arguments, ou sans aucun argument entraîne une erreur :

SELECT LN()
FROM DUAL;

Résultat :

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:

Et :

SELECT LN(10, 2)
FROM DUAL;

Résultat :

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: