IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

oracle + convertir chiffres en lettres


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Par défaut oracle + convertir chiffres en lettres
    Bonjour,
    svp connaissez-vous une fonction en sql permettant de convertir des chiffres en lettres? ou bien quelqu'un en a-t-il un à me proposer? par exemple: convertir "1585" en "mille cinq cent quatre vingts cinq".*
    Merci

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Pardon, c'est pas la FAQ, Mais une recherche (Nombre lettre) aurait donné un gros post

    Voici le lien final :
    http://oracle.developpez.com/sources...mbre_a_lettres

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par florine Voir le message
    Bonjour,
    svp connaissez-vous une fonction en sql permettant de convertir des chiffres en lettres? ou bien quelqu'un en a-t-il un à me proposer? par exemple: convertir "1585" en "mille cinq cent quatre vingts cinq".*
    Merci
    note que 1585, en lettres ça fait

    mille cinq cent quatre-vingt cinq

    (pas de s à vingt)

    dans la fonction d'orafrance, il y a aussi quelques erreurs de pluriel, minimes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT translate_fr(to_word_en(8e4)) FROM dual;
    quatre-vingts mille
     
    SELECT translate_fr(to_word_en(1e36)) FROM dual;
    un undecillions
     
    SELECT translate_fr(to_word_en(101e33)) FROM dual;
    cent un decillion
    les virgules par contre ne marchent pas du tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT translate_fr(to_word_en(0.10)) FROM dual;
    zero
     
    SELECT translate_fr(to_word_en(1.01)) FROM dual;
    un virgule un

  5. #5
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par défaut
    bonjour,
    merci pour cette fonction
    pour le problem des virgules voiçi la modif que j'ai fais:

    j'ai remplacer dans la fonction to_word_en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      li$nb_zero := INSTR(TRANSLATE(SUBSTR (pn$nombre - lv$entier, 2),'123456789','x'),'x')-1;
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    li$nb_zero := length(TRANSLATE(SUBSTR (pn$nombre - lv$entier, 2),'123456789','x'))-1;
    aussi dans la fonction translate_fr j'ai ramplacer :
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     RETURN replace(lv$nombre_fr,'Un Cent','Cent');
    resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT translate_fr(to_word_en(0.10)) FROM dual;
    zero virgule Un
     
    SELECT translate_fr(to_word_en(1.01)) FROM dual;
    Un virgule zero Un

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Note que le problème de virgule est déjà résolu dans la source

    J'ai un peu travaillé depuis 2007 quand même

    Par contre, va falloir que je m'attèle aux pluriels

    quatre-vingts mille ne s'écrit pas comme ça ? 80 est rond donc un s non ?
    deux cents mille s'écrit bien comme ça aussi non ?

    Edit : Bon... c'est quatre-vingt mille mais quatre-vingts millions

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Si vingt ou cent ne sont pas les derniers mots, ils ne prennent pas de 's'. Simple et sans exception.

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Non, ce n'est pas si simple : http://www.francaisfacile.com/exerci...ncais-3211.php

    Exemple :
    Ce film a rapporté près de quatre-VINGTS millions d'euro(s).
    Explications: pluriel (exception) car 80 n'est suivi d'aucun cardinal numéral (million n'est pas un cardinal numéral : c'est un nom).

    Cette pétition a obtenu plus de quatre-VINGT mille signatures.
    Explications: invariable, car 80 est suivi d'un cardinal numéral (mille est un cardinal numéral, contrairement à million qui est un nom).

  9. #9
    Invité de passage
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Par défaut mekhlouf_mourad@yahoo.fr
    Citation Envoyé par florine Voir le message
    Bonjour,
    svp connaissez-vous une fonction en sql permettant de convertir des chiffres en lettres? ou bien quelqu'un en a-t-il un à me proposer? par exemple: convertir "1585" en "mille cinq cent quatre vingts cinq".*
    Merci

  10. #10
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    et qu'est ce qu'on doit faire de votre message exactement ?

  11. #11
    iam
    iam est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Par défaut
    je suis tres reconnaissant pour le travail et l'effort que vous avez réalisé pour la conversion des chiffres en lettres, j'ai besoins de cette fonctionnalité pour afficher les montants en lettres dans mes factures, ça repond à mon besoin mais seulement un petit souci,

    je m'explique :

    quand je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_euro_fr('0.10') from dual;
    ca me fais cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-06502:PL/SQL:erreur numérique ou erreur sur une valeur:erreur de conversion des caractères en chiffres
    ORA-06512:à "SCO.TO_EURO_FR",ligne 4
    je n'ai pas compris pourtant j'ai utilisé le code corrigé en dernier des fonctions to_euro_fr et to_word_fr , to_word_en, translate_fr

    je pense que le séparateur décimal me pose un problème parceque quand j'utilise la virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_euro_fr('0,10') from dual;
    il m'affiche mais je cherche à afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zero euro et dix centimes euros
    ou est ce qu'elle est l'erreur pourtant vous avez mis ce post résolu.
    merci pour votre attention

  12. #12
    iam
    iam est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 197
    Par défaut
    aparement le problem est dans le séparateur décimal
    il faut mettre nls_numerci_character = .
    mais je ne sais pas comment le faire je travail avec forms et reports

  13. #13
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    un alter session devrait suffire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Convertir chiffres en lettres avec changement de la devise
    Par sbobo dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/06/2013, 17h54
  2. convertir chiffre en lettre arabe
    Par infomap dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/11/2011, 17h24
  3. convertir chiffre en lettre arabe
    Par infomap dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/04/2011, 19h39
  4. convertir chiffre en lettre arabe
    Par DzBadBoy dans le forum Langage
    Réponses: 13
    Dernier message: 21/09/2009, 21h46
  5. [VB]Convertir chiffres en lettres
    Par RichY dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/02/2006, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo