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)
Où 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: