LOG |
Logarithme |
|---|---|
| Oracle Database SQL | Oracle version 6 ou supérieure |
Syntaxe
| Log(Nombre,Base) |
Paramètres
| Nom | Description |
|---|---|
| Nombre | Ce paramètre permet d'indiquer une expression représentant un nombre à traiter |
| Base | Ce paramètre permet d'indiquer en quel base est effectué le logarithme |
Description
Cette fonction retourne le logarithme en base n.
Algorithme
|
MODULE SQRT(X) SI X = 0.0 ALORS RETOURNE 0.0 SINON M ← 1.0 XN ← X BOUCLE FAIRE TANT QUE XN >= 2.0 XN ← 0.25 x XN M ← 2.0 x M FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE XN < 0.5 XN ← 4.0 x XN M ← 0.5 x M FIN BOUCLE FAIRE TANT QUE A ← XN B ← 1.0 - XN BOUCLE REPETER A ← A x (1.0 + 0.5 x B) B ← 0.25 x (3.0 + B) x B x B FIN BOUCLE JUSQU'A B ← 1.0E - 15 RETOURNE A x M FIN SI MODULE LOG(x) negatif ← faux fois ← 1 ajout ← 0 SI x <= 0.0 ALORS RETOURNE 0 FIN SI SI x < 1.0 ALORS negatif ← vrai x ← 1.0 / x FIN SI BOUCLE FAIRE TANT QUE x >= 10.0 x ← x / 10.0 ajout ← ajout + 2.302585092994046 FIN BOUCLE FAIRE TANT QUE BOUCLE FAIRE TANT QUE x >= 1.1 x ← SQRT(x) fois ← fois x 2 FIN BOUCLE FAIRE TANT QUE x ← x - 1 savx ← x i ← 2 xp ← x x x quotient ← (xp / i) dl ← x - quotient BOUCLE FAIRE TANT QUE 1.0E-15 ← quotient i ← i + 1 xp ← xp x x dl ← dl + (xp / i) i ← i + 1 xp ← xp x x quotient ← (xp / i) dl ← dl - quotient FIN BOUCLE FAIRE TANT QUE dl ← dl x fois dl ← dl + ajout SI negatif ALORS dl ← -dl FIN SI RETOURNE dl |
Remarques
- La fonction LOG permet de calculer le logarithme d'un nombre selon une base spécifiée, ce qui est fondamental pour de nombreuses applications mathématiques, scientifiques et financières. Elle généralise ainsi la notion de logarithme, pas limitée à la base naturelle ou décimale.
- Le premier paramètre Nombre doit être strictement positif, car le logarithme d'un nombre nul ou négatif n'est pas défini dans les nombres réels. Oracle retourne une erreur si ce critère n'est pas respecté, ce qui oblige à une validation préalable des données.
- Le second paramètre Base doit également être strictement positif et différent de 1, car ces valeurs rendent le logarithme indéfini ou trivial. Une base de 1 conduit à une division par zéro dans la formule du logarithme, et Oracle renverra une erreur dans ce cas.
- Si la base n'est pas spécifiée, la fonction LOG n'est pas valide dans Oracle, car elle nécessite explicitement deux paramètres. Pour le logarithme naturel, Oracle propose la fonction LN, tandis que pour le logarithme décimal, il faut utiliser LOG(10, x).
- LOG peut être utilisée pour transformer des données exponentielles en données linéaires, ce qui facilite l'analyse, la visualisation, et la modélisation statistique, notamment dans les régressions ou les calculs d'élasticité.
- Dans les calculs financiers, LOG est fréquemment utilisée pour déterminer les taux de croissance composés ou pour calculer des rendements continus, car les logarithmes transforment des multiplicateurs en sommes plus faciles à manipuler.
- Cette fonction peut être combinée avec d'autres fonctions mathématiques d'Oracle, comme EXP, POWER ou SQRT, pour créer des formules plus complexes intégrées directement dans les requêtes SQL.
- La précision du résultat dépend du type numérique des arguments. Utiliser des types NUMBER avec suffisamment de précision permet d'obtenir des résultats très exacts, tandis que des types entiers limitent la précision.
- Dans certaines bases Oracle, des fonctions similaires peuvent être utilisées pour des bases fixes, mais LOG offre une grande flexibilité pour toutes les bases, ce qui est rare dans d'autres SGBD classiques.
- Le résultat de LOG est toujours un nombre réel. Si les entrées sont valides, Oracle retourne un nombre à virgule flottante, ce qui est idéal pour des calculs analytiques avancés.
- L'utilisation de LOG dans les clauses WHERE doit être faite avec précaution, notamment en s'assurant que les valeurs testées respectent les contraintes (nombre > 0 et base > 0, base ≠ 1), sous peine de générer des erreurs d'exécution.
- LOG est une fonction déterministe dans Oracle, ce qui signifie que pour les mêmes valeurs d'entrée, elle retourne toujours le même résultat, ce qui est un atout pour la mise en cache et l'optimisation des requêtes.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015