Bonjour à tous,
En parcourant le code d'une de mes applications, je suis tombé sur celui-ci :
(LENGTH(REJECTED_LINE) - LENGTH(REPLACE(REJECTED_LINE,';',NULL))) / NVL(LENGTH(';'),1) )
Ce code sert au départ à vérifier le nombre de colonne dans une ligne extraite d'un fichier .csv, mais je cherche à comprendre l'intérêt de la partie située après la division.
De mon analyse je déduit que :
- NVL sert à éviter de faire une division par 0 dans le cas ou length(';') est null
- LENGTH(';') peut donc être null ou supérieur à 1.
L'énigme est donc :
Dans quel cas length(';') peut être null ou supérieur à 1.
J'émet une hypothèse autour de l'encodage, mais la fonction lengthb sert à indiquer le nombre d'octets d'un paramètre.
Ce pourrait-il qu'une justification de ce code tienne à une ancienne version d'oracle ?
Merci de vos éclairages.
Philippe
Partager