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

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Tu vas sûrement trouver un article de la chartre pour me bannir... mais en attendant moi j'aurais mis un s à cent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT translate_fr(to_word_en(200000000)) FROM dual;
    deux cent millions
    vive la langue français

    Citation Envoyé par laurentschneider Voir le message
    tu mets un s à un ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT translate_fr(to_word_en(1001000000)) FROM dual;
    un milliard un millions
    Oui... quand ça m'arrange

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Ca va mieux là ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    CREATE OR REPLACE FUNCTION translate_fr(pn$nombre_en IN VARCHAR2) 
    RETURN VARCHAR2 
    AS
       lv$nombre_fr VARCHAR2(255); 
    BEGIN 
        lv$nombre_fr := REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( 		   
                                                   pn$nombre_en 
                                                 , 'million'           , 'millions'        ) 
                                                 , 'billion'           , 'milliards'       ) 
                                                 , 'trillion'          , 'trillions'       ) 
                                                 , 'quadrillion'       , 'quadrillions'    ) 
                                                 , 'quintillion'       , 'cintillions'     ) 
                                                 , 'sextillion'        , 'sextillions'     )    
                                                 , 'septillion'        , 'septillions'     )  
                                                 , 'octillion'         , 'octillions'      ) 
                                                 , 'nonillion'         , 'nonillions'      )  
                                                 , 'decillion'         , 'decillions'      )  
                                                 , 'thousand'          , 'mille'           ) 
                                                 , 'hundred'           , 'cent'            ) 
                                                 , 'ninety'            , 'quatre-vingt-dix') 
                                                 , 'eighty'            , 'quatre-vingts'   ) 
                                                 , 'seventy'           , 'soixante-dix'    ) 
                                                 , 'sixty'             , 'soixante'        ) 
                                                 , 'fifty'             , 'cinquante'       ) 
                                                 , 'forty'             , 'quarante'        ) 
                                                 , 'thirty'            , 'trente'          ) 
                                                 , 'twenty'            , 'vingt'           ) 
                                                 , 'nineteen'          , 'dix-neuf'        ) 
                                                 , 'eighteen'          , 'dix-huit'        ) 
                                                 , 'seventeen'         , 'dix-sept'        ) 
                                                 , 'sixteen'           , 'seize'           ) 
                                                 , 'fifteen'           , 'quinze'          ) 
                                                 , 'fourteen'          , 'quatorze'        ) 
                                                 , 'thirteen'          , 'treize'          ) 
                                                 , 'twelve'            , 'douze'           ) 
                                                 , 'eleven'            , 'onze'            ) 
                                                 , 'ten'               , 'dix'             ) 
                                                 , 'nine'              , 'neuf'            ) 
                                                 , 'eight'             , 'huit'            ) 
                                                 , 'seven'             , 'sept'            ) 
                                                 , 'five'              , 'cinq'            ) 
                                                 , 'four'              , 'quatre'          ) 
                                                 , 'three'             , 'trois'           ) 
                                                 , 'two'               , 'deux'            ) 
                                                 , 'one'               , 'un'              ) 
                                                 , 'dix-six'           , 'seize'           ) 
                                                 , 'dix-cinq'          , 'quinze'          ) 
                                                 , 'dix-quatre'        , 'quatorze'        ) 
                                                 , 'dix-trois'         , 'treize'          ) 
                                                 , 'dix-deux'          , 'douze'           ) 
                                                 , 'dix-un'            , 'onze'            ) 
                                                 , '-un '              , '-une '           ) 
                                                 , 'un cent'           , 'cent'            ) 
                                                 , 'une'               , 'un'              ) 
                                                 , 'soixante-onze'     , 'soixante et onze') 
                                                 , 'quatre-vingts-'    , 'quatre-vingt-'   ) 
                                                 , '-un'               , ' et un'          ) 
                                                 , 'quatre-vingt et un', 'quatre-vingt-un' ) 
                                                 , 'deux cent'         , 'deux cents'      ) 
                                                 , 'trois cent'        , 'trois cents'     ) 
                                                 , 'quatre cent'       , 'quatre cents'    ) 
                                                 , 'cinq cent'         , 'cinq cents'      ) 
                                                 , 'six cent'          , 'six cents'       ) 
                                                 , 'sept cent'         , 'sept cents'      ) 
                                                 , 'huit cent'         , 'huit cents'      ) 
                                                 , 'neuf cent'         , 'neuf cents'      ) 
                                                 , 'cents '            , 'cent '           ) 
                                                 , 'vingts mille'      , 'vingt mille'     )
                                                 , 'un millions'       , 'un million'      ) 
                                                 , 'un bidecillions'   , 'un bidecillion'  ) 
                                                 , 'un cintillions'    , 'un cintillion'   ) 
                                                 , 'un milliards'      , 'un milliard'     ) 
                                                 , 'un trillions'      , 'un trillion'      ) 
                                                 , 'un quadrillions'   , 'un quadrillion'   ) 
                                                 , 'un sextillions'    , 'un sextillion'    )    
                                                 , 'un septillions'    , 'un septillion'    )  
                                                 , 'un octillions'     , 'un octillion'     ) 
                                                 , 'un nonillions'     , 'un nonillion'     )  
                                                 , 'un decillions'     , 'un decillion'     )  
                                                 , 'un undecillions'   , 'un undecillion'   )  
                                                 , 'un duodecillions'  , 'un duodecillion'  )  
                                                 , 'un tridecillions'  , 'un tridecillion'  )  
                                                 , 'un quaddecillions' , 'un quaddecillion' )  
                                                 , 'un quindecillions' , 'un quindecillion' )  
                                                 , 'un sexdecillions'  , 'un sexdecillion'  )  
                                                 , 'un septdecillions' , 'un septdecillion' )  
                                                 , 'un octdecillions'  , 'un octdecillion'  )  
                                                 , 'un nondecillions'  , 'un nondecillion'  )  
                                                 , 'un dedecillions'   , 'un dedecillion'   )  
                                                 , '-un trillion'      , '-un trillions'     ) 
                                                 , '-un quadrillion'   , '-un quadrillions'  ) 
                                                 , '-un sextillion'    , '-un sextillions'   )    
                                                 , '-un septillion'    , '-un septillions'   )  
                                                 , '-un octillion'     , '-un octillions'    ) 
                                                 , '-un nonillion'     , '-un nonillions'    )  
                                                 , '-un decillion'     , '-un decillions'    )  
                                                 , '-un undecillion'   , '-un undecillions'  )  
                                                 , '-un duodecillion'  , '-un duodecillions' )  
                                                 , '-un tridecillion'  , '-un tridecillions' )  
                                                 , '-un quaddecillion' , '-un quaddecillions')  
                                                 , '-un quindecillion' , '-un quindecillions')  
                                                 , '-un sexdecillion'  , '-un sexdecillions' )  
                                                 , '-un septdecillion' , '-un septdecillions')  
                                                 , '-un octdecillion'  , '-un octdecillions' )  
                                                 , '-un nondecillion'  , '-un nondecillions' )  
                                                 , '-un dedecillion'   , '-un dedecillions'  )  
                                                 , '-un million'       , '-un millions'    ) 
                                                 , '-un bidecillion'   , '-un bidecillions') 
                                                 , '-un cintillion'    , '-un cintillions' ) 
                                                 , '-un milliard'      , '-un milliards'   ) 
                                                 , ' cent millions'       , ' cents millions'      ) 
                                                 , ' cent bidecillions'   , ' cents bidecillions'  ) 
                                                 , ' cent cintillions'    , ' cents cintillions'   ) 
                                                 , ' cent milliards'      , ' cents milliards'     ) 
                                                 , ' cent trillions'      , ' cents trillions'      ) 
                                                 , ' cent quadrillions'   , ' cents quadrillions'   ) 
                                                 , ' cent sextillions'    , ' cents sextillions'    )    
                                                 , ' cent septillions'    , ' cents septillions'    )  
                                                 , ' cent octillions'     , ' cents octillions'     ) 
                                                 , ' cent nonillions'     , ' cents nonillions'     )  
                                                 , ' cent decillions'     , ' cents decillions'     )  
                                                 , ' cent centdecillions' , ' cents centdecillions'   )  
                                                 , ' cent duodecillions'  , ' cents duodecillions'  )  
                                                 , ' cent tridecillions'  , ' cents tridecillions'  )  
                                                 , ' cent quaddecillions' , ' cents quaddecillions' )  
                                                 , ' cent quindecillions' , ' cents quindecillions' )  
                                                 , ' cent sexdecillions'  , ' cents sexdecillions'  )  
                                                 , ' cent septdecillions' , ' cents septdecillions' )  
                                                 , ' cent octdecillions'  , ' cents octdecillions'  )  
                                                 , ' cent nondecillions'  , ' cents nondecillions'  )  
                                                 , ' cent dedecillions'   , ' cents dedecillions'   )  
                                                 , 'et un million'       , 'et un millions'      ) 
                                                 , 'et un bidecillion'   , 'et un bidecillions'  ) 
                                                 , 'et un cintillion'    , 'et un cintillions'   ) 
                                                 , 'et un milliard'      , 'et un milliards'     ) 
                                                 , 'et un trillion'      , 'et un trillions'      ) 
                                                 , 'et un quadrillion'   , 'et un quadrillions'   ) 
                                                 , 'et un sextillion'    , 'et un sextillions'    )    
                                                 , 'et un septillion'    , 'et un septillions'    )  
                                                 , 'et un octillion'     , 'et un octillions'     ) 
                                                 , 'et un nonillion'     , 'et un nonillions'     )  
                                                 , 'et un decillion'     , 'et un decillions'     )  
                                                 , 'et un undecillion'   , 'et un undecillions'   )  
                                                 , 'et un duodecillion'  , 'et un duodecillions'  )  
                                                 , 'et un tridecillion'  , 'et un tridecillions'  )  
                                                 , 'et un quaddecillion' , 'et un quaddecillions' )  
                                                 , 'et un quindecillion' , 'et un quindecillions' )  
                                                 , 'et un sexdecillion'  , 'et un sexdecillions'  )  
                                                 , 'et un septdecillion' , 'et un septdecillions' )  
                                                 , 'et un octdecillion'  , 'et un octdecillions'  )  
                                                 , 'et un nondecillion'  , 'et un nondecillions'  )  
                                                 , 'et un dedecillion'   , 'et un dedecillions'   )  
                                                 , 'cent un million'       , 'cent un millions'      ) 
                                                 , 'cent un bidecillion'   , 'cent un bidecillions'  ) 
                                                 , 'cent un cintillion'    , 'cent un cintillions'   ) 
                                                 , 'cent un milliard'      , 'cent un milliards'     ) 
                                                 , 'cent un trillion'      , 'cent un trillions'      ) 
                                                 , 'cent un quadrillion'   , 'cent un quadrillions'   ) 
                                                 , 'cent un sextillion'    , 'cent un sextillions'    )    
                                                 , 'cent un septillion'    , 'cent un septillions'    )  
                                                 , 'cent un octillion'     , 'cent un octillions'     ) 
                                                 , 'cent un nonillion'     , 'cent un nonillions'     )  
                                                 , 'cent un decillion'     , 'cent un decillions'     )  
                                                 , 'cent un undecillion'   , 'cent un undecillions'   )  
                                                 , 'cent un duodecillion'  , 'cent un duodecillions'  )  
                                                 , 'cent un tridecillion'  , 'cent un tridecillions'  )  
                                                 , 'cent un quaddecillion' , 'cent un quaddecillions' )  
                                                 , 'cent un quindecillion' , 'cent un quindecillions' )  
                                                 , 'cent un sexdecillion'  , 'cent un sexdecillions'  )  
                                                 , 'cent un septdecillion' , 'cent un septdecillions' )  
                                                 , 'cent un octdecillion'  , 'cent un octdecillions'  )  
                                                 , 'cent un nondecillion'  , 'cent un nondecillions'  )  
                                                 , 'cent un dedecillion'   , 'cent un dedecillions'   )  
                                                 , 'point'             , 'virgule'         ) 
    					     ,'  ',' '); 
        IF SUBSTR(lv$nombre_fr,1,8)='un mille' THEN
            lv$nombre_fr := SUBSTR(lv$nombre_fr,4);
        END IF;
     
     
        RETURN lv$nombre_fr; 
    END translate_fr; 
    /
    J'espère que REPLACE est performant

    Par contre, j'ai un souci quand le chiffre fini par 1000. J'écris un million un mille et pas un million mille

  3. #23
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    pour l'histoire des montants, il faudrait une fonction à part

    2.05 ==> deux francs zero cinq
    2.10 ==> deux francs dix


    quant à la correction de un million un mille, ca ne marche toujours pas, ni même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT translate_fr(to_word_en(0.1001)) FROM dual;
    zero virgule un mille un

  4. #24
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Par contre, j'ai un souci quand le chiffre fini par 1000. J'écris un million un mille et pas un million mille
    tu pourrais faire un

    replace illion un mille par illion mille
    replace illiard un mille par illiard mille
    replace zero un mille par zero mille
    replace virgule un mille par virgule mille

  5. #25
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    pour plus de lisibilité, tu peux placer les expressions REPLACE dans une table PLSQL et boucler...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Essayons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    CREATE OR REPLACE FUNCTION to_word_fr(pn$nombre IN NUMBER) 
       RETURN VARCHAR2 
    AS
    BEGIN
      RETURN translate_fr(to_word_en(pn$nombre));
    END to_word_fr;
    /
     
    CREATE OR REPLACE FUNCTION to_word_en(pn$nombre IN NUMBER) 
       RETURN VARCHAR2 
    AS 
       -- 
       TYPE table_varchar IS TABLE OF VARCHAR2 (255); 
     
       -- 
       lv$multiples table_varchar  := table_varchar ('', 
                                      ' thousand ', 
                                      ' million ', 
                                      ' billion ', 
                                      ' trillion ', 
                                      ' quadrillion ', 
                                      ' quintillion ', 
                                      ' sextillion ', 
                                      ' septillion ', 
                                      ' octillion ', 
                                      ' nonillion ', 
                                      ' decillion ', 
                                      ' undecillion ', 
                                      ' duodecillion ', 
                                      ' tridecillion ', 
                                      ' quaddecillion ', 
                                      ' quindecillion ', 
                                      ' sexdecillion ', 
                                      ' septdecillion ', 
                                      ' octdecillion ', 
                                      ' nondecillion ', 
                                      ' dedecillion ' 
                                      ); 
     
       lv$entier           VARCHAR2(255) := TRUNC (TO_NUMBER (REPLACE (pn$nombre, ' ', ''))); 
       lv$decimales        VARCHAR2(255) := SUBSTR (pn$nombre - lv$entier, 2); 
       lv$mots_complets    VARCHAR2(4000); 
       lv$entier_lettres   VARCHAR2(4000); 
       li$nb_zero          INTEGER; 
    BEGIN 
       -- 
       -- Traitement de la partie décimale 
       -- 
       IF NVL (lv$decimales, 0) != 0 
       THEN 
          FOR i IN 1 .. lv$multiples.COUNT 
          LOOP 
             EXIT WHEN lv$decimales IS NULL; 
     
             -- 
             IF (SUBSTR (lv$decimales, LENGTH (lv$decimales) - 2, 3) <> 0) 
             THEN 
                lv$mots_complets := 
                      TO_CHAR (TO_DATE (SUBSTR (lv$decimales, 
                                                LENGTH (lv$decimales) - 2, 
                                                3 
                                               ), 
                                        'j' 
                                       ), 
                               'jsp' 
                              ) 
                   || lv$multiples (i) 
                   || lv$mots_complets; 
             END IF; 
     
             lv$decimales := SUBSTR (lv$decimales, 1, LENGTH (lv$decimales) - 3); 
          END LOOP; 
     
          --ajoute les zeros après la virgule
          li$nb_zero := INSTR(TRANSLATE(SUBSTR(pn$nombre - lv$entier, 2),'123456789','xxxxxxxxx'),'x')-1;
          IF li$nb_zero > 0  THEN
            FOR i  IN 1..li$nb_zero  LOOP
    	      lv$mots_complets := 'zero ' || lv$mots_complets;
            END LOOP;
          END IF;
     
          -- Annonce la décimale (remplacer par Euro pour les montants en euros par exemple) 
          lv$mots_complets := ' point ' || lv$mots_complets; 
     
       END IF; 
     
       -- 
       -- Traitement de la partie entière 
       -- 
       IF NVL (lv$entier, 0) = 0 
       THEN 
          lv$mots_complets := 'zero' || lv$mots_complets; 
       ELSE 
          FOR i IN 1 .. lv$multiples.COUNT 
          LOOP 
             EXIT WHEN lv$entier IS NULL; 
     
             -- 
             IF (SUBSTR (lv$entier, LENGTH (lv$entier) - 2, 3) <> 0) 
             THEN 
                lv$mots_complets := 
                      TO_CHAR (TO_DATE (SUBSTR (lv$entier, LENGTH (lv$entier) - 2, 
                                                3), 
                                        'j' 
                                       ), 
                               'jsp' 
                              ) 
                   || lv$multiples (i) 
                   || lv$mots_complets; 
             END IF; 
     
             lv$entier := SUBSTR (lv$entier, 1, LENGTH (lv$entier) - 3); 
          END LOOP; 
       END IF; 
     
       RETURN lv$mots_complets; 
    END to_word_en; 
    /
     
    CREATE OR REPLACE FUNCTION translate_fr(pv$nombre_en IN VARCHAR2) 
    RETURN VARCHAR2 
    AS
       lv$nombre_fr VARCHAR2(255); 
       lv$entier VARCHAR2(255); 
       lv$decimale VARCHAR2(255); 
    BEGIN 
        lv$nombre_fr := REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( 		   
                                                   pv$nombre_en 
                                                 , 'million'           , 'millions'        ) 
                                                 , 'billion'           , 'milliards'       ) 
                                                 , 'trillion'          , 'trillions'       ) 
                                                 , 'quadrillion'       , 'quadrillions'    ) 
                                                 , 'quintillion'       , 'cintillions'     ) 
                                                 , 'sextillion'        , 'sextillions'     )    
                                                 , 'septillion'        , 'septillions'     )  
                                                 , 'octillion'         , 'octillions'      ) 
                                                 , 'nonillion'         , 'nonillions'      )  
                                                 , 'decillion'         , 'decillions'      )  
                                                 , 'thousand'          , 'mille'           ) 
                                                 , 'hundred'           , 'cent'            ) 
                                                 , 'ninety'            , 'quatre-vingt-dix') 
                                                 , 'eighty'            , 'quatre-vingts'   ) 
                                                 , 'seventy'           , 'soixante-dix'    ) 
                                                 , 'sixty'             , 'soixante'        ) 
                                                 , 'fifty'             , 'cinquante'       ) 
                                                 , 'forty'             , 'quarante'        ) 
                                                 , 'thirty'            , 'trente'          ) 
                                                 , 'twenty'            , 'vingt'           ) 
                                                 , 'nineteen'          , 'dix-neuf'        ) 
                                                 , 'eighteen'          , 'dix-huit'        ) 
                                                 , 'seventeen'         , 'dix-sept'        ) 
                                                 , 'sixteen'           , 'seize'           ) 
                                                 , 'fifteen'           , 'quinze'          ) 
                                                 , 'fourteen'          , 'quatorze'        ) 
                                                 , 'thirteen'          , 'treize'          ) 
                                                 , 'twelve'            , 'douze'           ) 
                                                 , 'eleven'            , 'onze'            ) 
                                                 , 'ten'               , 'dix'             ) 
                                                 , 'nine'              , 'neuf'            ) 
                                                 , 'eight'             , 'huit'            ) 
                                                 , 'seven'             , 'sept'            ) 
                                                 , 'five'              , 'cinq'            ) 
                                                 , 'four'              , 'quatre'          ) 
                                                 , 'three'             , 'trois'           ) 
                                                 , 'two'               , 'deux'            ) 
                                                 , 'one'               , 'un'              ) 
                                                 , 'dix-six'           , 'seize'           ) 
                                                 , 'dix-cinq'          , 'quinze'          ) 
                                                 , 'dix-quatre'        , 'quatorze'        ) 
                                                 , 'dix-trois'         , 'treize'          ) 
                                                 , 'dix-deux'          , 'douze'           ) 
                                                 , 'dix-un'            , 'onze'            ) 
                                                 , '-un '              , '-une '           ) 
                                                 , 'un cent'           , 'cent'            ) 
                                                 , 'une'               , 'un'              ) 
                                                 , 'soixante-onze'     , 'soixante et onze') 
                                                 , 'quatre-vingts-'    , 'quatre-vingt-'   ) 
                                                 , '-un'               , ' et un'          ) 
                                                 , 'quatre-vingt et un', 'quatre-vingt-un' ) 
                                                 , 'deux cent'         , 'deux cents'      ) 
                                                 , 'trois cent'        , 'trois cents'     ) 
                                                 , 'quatre cent'       , 'quatre cents'    ) 
                                                 , 'cinq cent'         , 'cinq cents'      ) 
                                                 , 'six cent'          , 'six cents'       ) 
                                                 , 'sept cent'         , 'sept cents'      ) 
                                                 , 'huit cent'         , 'huit cents'      ) 
                                                 , 'neuf cent'         , 'neuf cents'      ) 
                                                 , 'cents '            , 'cent '           ) 
                                                 , 'vingts mille'      , 'vingt mille'     )
                                                 , 'un millions'       , 'un million'      ) 
                                                 , 'un bidecillions'   , 'un bidecillion'  ) 
                                                 , 'un cintillions'    , 'un cintillion'   ) 
                                                 , 'un milliards'      , 'un milliard'     ) 
                                                 , 'un trillions'      , 'un trillion'      ) 
                                                 , 'un quadrillions'   , 'un quadrillion'   ) 
                                                 , 'un sextillions'    , 'un sextillion'    )    
                                                 , 'un septillions'    , 'un septillion'    )  
                                                 , 'un octillions'     , 'un octillion'     ) 
                                                 , 'un nonillions'     , 'un nonillion'     )  
                                                 , 'un decillions'     , 'un decillion'     )  
                                                 , 'un undecillions'   , 'un undecillion'   )  
                                                 , 'un duodecillions'  , 'un duodecillion'  )  
                                                 , 'un tridecillions'  , 'un tridecillion'  )  
                                                 , 'un quaddecillions' , 'un quaddecillion' )  
                                                 , 'un quindecillions' , 'un quindecillion' )  
                                                 , 'un sexdecillions'  , 'un sexdecillion'  )  
                                                 , 'un septdecillions' , 'un septdecillion' )  
                                                 , 'un octdecillions'  , 'un octdecillion'  )  
                                                 , 'un nondecillions'  , 'un nondecillion'  )  
                                                 , 'un dedecillions'   , 'un dedecillion'   )  
                                                 , '-un trillion'      , '-un trillions'     ) 
                                                 , '-un quadrillion'   , '-un quadrillions'  ) 
                                                 , '-un sextillion'    , '-un sextillions'   )    
                                                 , '-un septillion'    , '-un septillions'   )  
                                                 , '-un octillion'     , '-un octillions'    ) 
                                                 , '-un nonillion'     , '-un nonillions'    )  
                                                 , '-un decillion'     , '-un decillions'    )  
                                                 , '-un undecillion'   , '-un undecillions'  )  
                                                 , '-un duodecillion'  , '-un duodecillions' )  
                                                 , '-un tridecillion'  , '-un tridecillions' )  
                                                 , '-un quaddecillion' , '-un quaddecillions')  
                                                 , '-un quindecillion' , '-un quindecillions')  
                                                 , '-un sexdecillion'  , '-un sexdecillions' )  
                                                 , '-un septdecillion' , '-un septdecillions')  
                                                 , '-un octdecillion'  , '-un octdecillions' )  
                                                 , '-un nondecillion'  , '-un nondecillions' )  
                                                 , '-un dedecillion'   , '-un dedecillions'  )  
                                                 , '-un million'       , '-un millions'    ) 
                                                 , '-un bidecillion'   , '-un bidecillions') 
                                                 , '-un cintillion'    , '-un cintillions' ) 
                                                 , '-un milliard'      , '-un milliards'   ) 
                                                 , ' cent millions'       , ' cents millions'      ) 
                                                 , ' cent bidecillions'   , ' cents bidecillions'  ) 
                                                 , ' cent cintillions'    , ' cents cintillions'   ) 
                                                 , ' cent milliards'      , ' cents milliards'     ) 
                                                 , ' cent trillions'      , ' cents trillions'      ) 
                                                 , ' cent quadrillions'   , ' cents quadrillions'   ) 
                                                 , ' cent sextillions'    , ' cents sextillions'    )    
                                                 , ' cent septillions'    , ' cents septillions'    )  
                                                 , ' cent octillions'     , ' cents octillions'     ) 
                                                 , ' cent nonillions'     , ' cents nonillions'     )  
                                                 , ' cent decillions'     , ' cents decillions'     )  
                                                 , ' cent centdecillions' , ' cents centdecillions'   )  
                                                 , ' cent duodecillions'  , ' cents duodecillions'  )  
                                                 , ' cent tridecillions'  , ' cents tridecillions'  )  
                                                 , ' cent quaddecillions' , ' cents quaddecillions' )  
                                                 , ' cent quindecillions' , ' cents quindecillions' )  
                                                 , ' cent sexdecillions'  , ' cents sexdecillions'  )  
                                                 , ' cent septdecillions' , ' cents septdecillions' )  
                                                 , ' cent octdecillions'  , ' cents octdecillions'  )  
                                                 , ' cent nondecillions'  , ' cents nondecillions'  )  
                                                 , ' cent dedecillions'   , ' cents dedecillions'   )  
                                                 , 'et un million'       , 'et un millions'      ) 
                                                 , 'et un bidecillion'   , 'et un bidecillions'  ) 
                                                 , 'et un cintillion'    , 'et un cintillions'   ) 
                                                 , 'et un milliard'      , 'et un milliards'     ) 
                                                 , 'et un trillion'      , 'et un trillions'      ) 
                                                 , 'et un quadrillion'   , 'et un quadrillions'   ) 
                                                 , 'et un sextillion'    , 'et un sextillions'    )    
                                                 , 'et un septillion'    , 'et un septillions'    )  
                                                 , 'et un octillion'     , 'et un octillions'     ) 
                                                 , 'et un nonillion'     , 'et un nonillions'     )  
                                                 , 'et un decillion'     , 'et un decillions'     )  
                                                 , 'et un undecillion'   , 'et un undecillions'   )  
                                                 , 'et un duodecillion'  , 'et un duodecillions'  )  
                                                 , 'et un tridecillion'  , 'et un tridecillions'  )  
                                                 , 'et un quaddecillion' , 'et un quaddecillions' )  
                                                 , 'et un quindecillion' , 'et un quindecillions' )  
                                                 , 'et un sexdecillion'  , 'et un sexdecillions'  )  
                                                 , 'et un septdecillion' , 'et un septdecillions' )  
                                                 , 'et un octdecillion'  , 'et un octdecillions'  )  
                                                 , 'et un nondecillion'  , 'et un nondecillions'  )  
                                                 , 'et un dedecillion'   , 'et un dedecillions'   )  
                                                 , 'cent un million'       , 'cent un millions'      ) 
                                                 , 'cent un bidecillion'   , 'cent un bidecillions'  ) 
                                                 , 'cent un cintillion'    , 'cent un cintillions'   ) 
                                                 , 'cent un milliard'      , 'cent un milliards'     ) 
                                                 , 'cent un trillion'      , 'cent un trillions'      ) 
                                                 , 'cent un quadrillion'   , 'cent un quadrillions'   ) 
                                                 , 'cent un sextillion'    , 'cent un sextillions'    )    
                                                 , 'cent un septillion'    , 'cent un septillions'    )  
                                                 , 'cent un octillion'     , 'cent un octillions'     ) 
                                                 , 'cent un nonillion'     , 'cent un nonillions'     )  
                                                 , 'cent un decillion'     , 'cent un decillions'     )  
                                                 , 'cent un undecillion'   , 'cent un undecillions'   )  
                                                 , 'cent un duodecillion'  , 'cent un duodecillions'  )  
                                                 , 'cent un tridecillion'  , 'cent un tridecillions'  )  
                                                 , 'cent un quaddecillion' , 'cent un quaddecillions' )  
                                                 , 'cent un quindecillion' , 'cent un quindecillions' )  
                                                 , 'cent un sexdecillion'  , 'cent un sexdecillions'  )  
                                                 , 'cent un septdecillion' , 'cent un septdecillions' )  
                                                 , 'cent un octdecillion'  , 'cent un octdecillions'  )  
                                                 , 'cent un nondecillion'  , 'cent un nondecillions'  )  
                                                 , 'cent un dedecillion'   , 'cent un dedecillions'   )  
                                                 , 'point'             , 'virgule'         ) 
    											 ,'  ',' '); 
     
        IF INSTR(lv$nombre_fr,'virgule') > 0 THEN
    	  lv$entier   :=  SUBSTR(lv$nombre_fr, 1, INSTR(lv$nombre_fr,'virgule')-2);
    	  lv$decimale :=  SUBSTR(lv$nombre_fr, INSTR(lv$nombre_fr,'virgule') - 1);
     	ELSE
          lv$entier := lv$nombre_fr;
    	  lv$decimale :=  NULL;
        END IF;
     
        IF lv$entier LIKE '%un mille%' AND NOT
    		(lv$entier LIKE '%cent% un mille' OR lv$entier LIKE '%et un mille%') THEN
            lv$entier := REPLACE(lv$entier, 'un mille', 'mille');
        END IF;
     
        RETURN lv$entier || lv$decimale;
     
    END translate_fr; 
    /
    Quelques tests :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    SQL> SELECT to_word_fr(1000) FROM dual;
     
    TO_WORD_FR(1000)
    --------------------------------------------------------------------------------
    mille
     
    SQL> SELECT translate_fr(to_word_en(1001001001001001001001 )) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(1001001001001001001001))
    --------------------------------------------------------------------------------
    un sextillion un cintillion un quadrillion un trillion un milliard un million mi
    lle un
     
     
    SQL> SELECT translate_fr(to_word_en(21000.120)) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(21000.120))
    --------------------------------------------------------------------------------
    vingt et un mille virgule douze
     
    SQL> SELECT translate_fr(to_word_en(200000.123)) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(200000.123))
    --------------------------------------------------------------------------------
    deux cent mille virgule cent vingt-trois
     
    SQL> SELECT translate_fr(to_word_en(200000000.123)) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(200000000.123))
    --------------------------------------------------------------------------------
    deux cents millions virgule cent vingt-trois
     
    SQL> SELECT translate_fr(to_word_en(82)) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(82))
    --------------------------------------------------------------------------------
    quatre-vingt-deux
     
    SQL> SELECT translate_fr(to_word_en(80)) FROM dual;
     
    TRANSLATE_FR(TO_WORD_EN(80))
    --------------------------------------------------------------------------------
    quatre-vingts
    PS : notez la création de to_word_fr pour alléger le code

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    pour l'histoire des montants, il faudrait une fonction à part

    2.05 ==> deux francs zero cinq
    2.10 ==> deux francs dix
    Faudrait retourner 2 valeurs et intercaler francs (ou euros plutôt ) et ajouter les centimes. Mais là, est-ce que 0.01 centime... prend un S ?

    Citation Envoyé par laurentschneider Voir le message
    quant à la correction de un million un mille, ca ne marche toujours pas, ni même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT translate_fr(to_word_en(0.1001)) FROM dual;
    zero virgule un mille un
    c'est réglé

  8. #28
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT to_word_fr(81000) FROM dual;
    quatre-vingt-mille

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    C'est corrigé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    CREATE OR REPLACE FUNCTION translate_fr(pv$nombre_en IN VARCHAR2) 
    RETURN VARCHAR2 
    AS
       lv$nombre_fr VARCHAR2(255); 
       lv$entier VARCHAR2(255); 
       lv$decimale VARCHAR2(255); 
    BEGIN 
        lv$nombre_fr := REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
               REPLACE( REPLACE( REPLACE( 		   
                                                   pv$nombre_en 
                                                 , 'million'           , 'millions'        ) 
                                                 , 'billion'           , 'milliards'       ) 
                                                 , 'trillion'          , 'trillions'       ) 
                                                 , 'quadrillion'       , 'quadrillions'    ) 
                                                 , 'quintillion'       , 'cintillions'     ) 
                                                 , 'sextillion'        , 'sextillions'     )    
                                                 , 'septillion'        , 'septillions'     )  
                                                 , 'octillion'         , 'octillions'      ) 
                                                 , 'nonillion'         , 'nonillions'      )  
                                                 , 'decillion'         , 'decillions'      )  
                                                 , 'thousand'          , 'mille'           ) 
                                                 , 'hundred'           , 'cent'            ) 
                                                 , 'ninety'            , 'quatre-vingt-dix') 
                                                 , 'eighty'            , 'quatre-vingts'   ) 
                                                 , 'seventy'           , 'soixante-dix'    ) 
                                                 , 'sixty'             , 'soixante'        ) 
                                                 , 'fifty'             , 'cinquante'       ) 
                                                 , 'forty'             , 'quarante'        ) 
                                                 , 'thirty'            , 'trente'          ) 
                                                 , 'twenty'            , 'vingt'           ) 
                                                 , 'nineteen'          , 'dix-neuf'        ) 
                                                 , 'eighteen'          , 'dix-huit'        ) 
                                                 , 'seventeen'         , 'dix-sept'        ) 
                                                 , 'sixteen'           , 'seize'           ) 
                                                 , 'fifteen'           , 'quinze'          ) 
                                                 , 'fourteen'          , 'quatorze'        ) 
                                                 , 'thirteen'          , 'treize'          ) 
                                                 , 'twelve'            , 'douze'           ) 
                                                 , 'eleven'            , 'onze'            ) 
                                                 , 'ten'               , 'dix'             ) 
                                                 , 'nine'              , 'neuf'            ) 
                                                 , 'eight'             , 'huit'            ) 
                                                 , 'seven'             , 'sept'            ) 
                                                 , 'five'              , 'cinq'            ) 
                                                 , 'four'              , 'quatre'          ) 
                                                 , 'three'             , 'trois'           ) 
                                                 , 'two'               , 'deux'            ) 
                                                 , 'one'               , 'un'              ) 
                                                 , 'dix-six'           , 'seize'           ) 
                                                 , 'dix-cinq'          , 'quinze'          ) 
                                                 , 'dix-quatre'        , 'quatorze'        ) 
                                                 , 'dix-trois'         , 'treize'          ) 
                                                 , 'dix-deux'          , 'douze'           ) 
                                                 , 'dix-un'            , 'onze'            ) 
                                                 , '-un '              , '-une '           ) 
                                                 , 'un cent'           , 'cent'            ) 
                                                 , 'une'               , 'un'              ) 
                                                 , 'soixante-onze'     , 'soixante et onze') 
                                                 , 'quatre-vingts-'    , 'quatre-vingt-'   ) 
                                                 , '-un'               , ' et un'          ) 
                                                 , 'quatre-vingt et un', 'quatre-vingt-un' ) 
                                                 , 'deux cent'         , 'deux cents'      ) 
                                                 , 'trois cent'        , 'trois cents'     ) 
                                                 , 'quatre cent'       , 'quatre cents'    ) 
                                                 , 'cinq cent'         , 'cinq cents'      ) 
                                                 , 'six cent'          , 'six cents'       ) 
                                                 , 'sept cent'         , 'sept cents'      ) 
                                                 , 'huit cent'         , 'huit cents'      ) 
                                                 , 'neuf cent'         , 'neuf cents'      ) 
                                                 , 'cents '            , 'cent '           ) 
                                                 , 'vingts mille'      , 'vingt mille'     )
                                                 , 'un millions'       , 'un million'      ) 
                                                 , 'un bidecillions'   , 'un bidecillion'  ) 
                                                 , 'un cintillions'    , 'un cintillion'   ) 
                                                 , 'un milliards'      , 'un milliard'     ) 
                                                 , 'un trillions'      , 'un trillion'      ) 
                                                 , 'un quadrillions'   , 'un quadrillion'   ) 
                                                 , 'un sextillions'    , 'un sextillion'    )    
                                                 , 'un septillions'    , 'un septillion'    )  
                                                 , 'un octillions'     , 'un octillion'     ) 
                                                 , 'un nonillions'     , 'un nonillion'     )  
                                                 , 'un decillions'     , 'un decillion'     )  
                                                 , 'un undecillions'   , 'un undecillion'   )  
                                                 , 'un duodecillions'  , 'un duodecillion'  )  
                                                 , 'un tridecillions'  , 'un tridecillion'  )  
                                                 , 'un quaddecillions' , 'un quaddecillion' )  
                                                 , 'un quindecillions' , 'un quindecillion' )  
                                                 , 'un sexdecillions'  , 'un sexdecillion'  )  
                                                 , 'un septdecillions' , 'un septdecillion' )  
                                                 , 'un octdecillions'  , 'un octdecillion'  )  
                                                 , 'un nondecillions'  , 'un nondecillion'  )  
                                                 , 'un dedecillions'   , 'un dedecillion'   )  
                                                 , '-un trillion'      , '-un trillions'     ) 
                                                 , '-un quadrillion'   , '-un quadrillions'  ) 
                                                 , '-un sextillion'    , '-un sextillions'   )    
                                                 , '-un septillion'    , '-un septillions'   )  
                                                 , '-un octillion'     , '-un octillions'    ) 
                                                 , '-un nonillion'     , '-un nonillions'    )  
                                                 , '-un decillion'     , '-un decillions'    )  
                                                 , '-un undecillion'   , '-un undecillions'  )  
                                                 , '-un duodecillion'  , '-un duodecillions' )  
                                                 , '-un tridecillion'  , '-un tridecillions' )  
                                                 , '-un quaddecillion' , '-un quaddecillions')  
                                                 , '-un quindecillion' , '-un quindecillions')  
                                                 , '-un sexdecillion'  , '-un sexdecillions' )  
                                                 , '-un septdecillion' , '-un septdecillions')  
                                                 , '-un octdecillion'  , '-un octdecillions' )  
                                                 , '-un nondecillion'  , '-un nondecillions' )  
                                                 , '-un dedecillion'   , '-un dedecillions'  )  
                                                 , '-un million'       , '-un millions'    ) 
                                                 , '-un bidecillion'   , '-un bidecillions') 
                                                 , '-un cintillion'    , '-un cintillions' ) 
                                                 , '-un milliard'      , '-un milliards'   ) 
                                                 , ' cent millions'       , ' cents millions'      ) 
                                                 , ' cent bidecillions'   , ' cents bidecillions'  ) 
                                                 , ' cent cintillions'    , ' cents cintillions'   ) 
                                                 , ' cent milliards'      , ' cents milliards'     ) 
                                                 , ' cent trillions'      , ' cents trillions'      ) 
                                                 , ' cent quadrillions'   , ' cents quadrillions'   ) 
                                                 , ' cent sextillions'    , ' cents sextillions'    )    
                                                 , ' cent septillions'    , ' cents septillions'    )  
                                                 , ' cent octillions'     , ' cents octillions'     ) 
                                                 , ' cent nonillions'     , ' cents nonillions'     )  
                                                 , ' cent decillions'     , ' cents decillions'     )  
                                                 , ' cent centdecillions' , ' cents centdecillions'   )  
                                                 , ' cent duodecillions'  , ' cents duodecillions'  )  
                                                 , ' cent tridecillions'  , ' cents tridecillions'  )  
                                                 , ' cent quaddecillions' , ' cents quaddecillions' )  
                                                 , ' cent quindecillions' , ' cents quindecillions' )  
                                                 , ' cent sexdecillions'  , ' cents sexdecillions'  )  
                                                 , ' cent septdecillions' , ' cents septdecillions' )  
                                                 , ' cent octdecillions'  , ' cents octdecillions'  )  
                                                 , ' cent nondecillions'  , ' cents nondecillions'  )  
                                                 , ' cent dedecillions'   , ' cents dedecillions'   )  
                                                 , 'et un million'       , 'et un millions'      ) 
                                                 , 'et un bidecillion'   , 'et un bidecillions'  ) 
                                                 , 'et un cintillion'    , 'et un cintillions'   ) 
                                                 , 'et un milliard'      , 'et un milliards'     ) 
                                                 , 'et un trillion'      , 'et un trillions'      ) 
                                                 , 'et un quadrillion'   , 'et un quadrillions'   ) 
                                                 , 'et un sextillion'    , 'et un sextillions'    )    
                                                 , 'et un septillion'    , 'et un septillions'    )  
                                                 , 'et un octillion'     , 'et un octillions'     ) 
                                                 , 'et un nonillion'     , 'et un nonillions'     )  
                                                 , 'et un decillion'     , 'et un decillions'     )  
                                                 , 'et un undecillion'   , 'et un undecillions'   )  
                                                 , 'et un duodecillion'  , 'et un duodecillions'  )  
                                                 , 'et un tridecillion'  , 'et un tridecillions'  )  
                                                 , 'et un quaddecillion' , 'et un quaddecillions' )  
                                                 , 'et un quindecillion' , 'et un quindecillions' )  
                                                 , 'et un sexdecillion'  , 'et un sexdecillions'  )  
                                                 , 'et un septdecillion' , 'et un septdecillions' )  
                                                 , 'et un octdecillion'  , 'et un octdecillions'  )  
                                                 , 'et un nondecillion'  , 'et un nondecillions'  )  
                                                 , 'et un dedecillion'   , 'et un dedecillions'   )  
                                                 , 'cent un million'       , 'cent un millions'      ) 
                                                 , 'cent un bidecillion'   , 'cent un bidecillions'  ) 
                                                 , 'cent un cintillion'    , 'cent un cintillions'   ) 
                                                 , 'cent un milliard'      , 'cent un milliards'     ) 
                                                 , 'cent un trillion'      , 'cent un trillions'      ) 
                                                 , 'cent un quadrillion'   , 'cent un quadrillions'   ) 
                                                 , 'cent un sextillion'    , 'cent un sextillions'    )    
                                                 , 'cent un septillion'    , 'cent un septillions'    )  
                                                 , 'cent un octillion'     , 'cent un octillions'     ) 
                                                 , 'cent un nonillion'     , 'cent un nonillions'     )  
                                                 , 'cent un decillion'     , 'cent un decillions'     )  
                                                 , 'cent un undecillion'   , 'cent un undecillions'   )  
                                                 , 'cent un duodecillion'  , 'cent un duodecillions'  )  
                                                 , 'cent un tridecillion'  , 'cent un tridecillions'  )  
                                                 , 'cent un quaddecillion' , 'cent un quaddecillions' )  
                                                 , 'cent un quindecillion' , 'cent un quindecillions' )  
                                                 , 'cent un sexdecillion'  , 'cent un sexdecillions'  )  
                                                 , 'cent un septdecillion' , 'cent un septdecillions' )  
                                                 , 'cent un octdecillion'  , 'cent un octdecillions'  )  
                                                 , 'cent un nondecillion'  , 'cent un nondecillions'  )  
                                                 , 'cent un dedecillion'   , 'cent un dedecillions'   )  
                                                 , 'point'             , 'virgule'         ) 
    											 ,'  ',' '); 
     
        IF INSTR(lv$nombre_fr,'virgule') > 0 THEN
    	  lv$entier   :=  SUBSTR(lv$nombre_fr, 1, INSTR(lv$nombre_fr,'virgule')-2);
    	  lv$decimale :=  SUBSTR(lv$nombre_fr, INSTR(lv$nombre_fr,'virgule') - 1);
     	ELSE
          lv$entier := lv$nombre_fr;
    	  lv$decimale :=  NULL;
        END IF;
     
        IF lv$entier LIKE '%un mille%' AND NOT
    		(lv$entier LIKE '%cent% un mille' OR lv$entier LIKE '%et un mille%' OR lv$entier LIKE '%-un mille%') THEN
            lv$entier := REPLACE(lv$entier, 'un mille', 'mille');
        END IF;
     
        RETURN lv$entier || lv$decimale;
     
    END translate_fr; 
    /
    Et pour les montants, je vous propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    CREATE OR REPLACE FUNCTION to_euro_fr(pn$nombre IN NUMBER) 
       RETURN VARCHAR2 
    AS
    lv$entier     VARCHAR2(255) := TRUNC(TO_NUMBER (REPLACE (pn$nombre, ' ', ''))); 
    lv$decimales  VARCHAR2(255) := SUBSTR (pn$nombre - lv$entier, 2); 
    li$nb_zero    INTEGER := INSTR(TRANSLATE(SUBSTR (pn$nombre - lv$entier, 2),'123456789','xxxxxxxxx'),'x')-1; 
    lv$unite      VARCHAR2(20) := ' euro';
    lv$sous_unite VARCHAR2(20) := ' centime';
    BEGIN
     
      lv$entier := to_word_fr(TO_NUMBER(lv$entier));
     
      IF ROUND(pn$nombre) > 1 THEN 
        lv$entier := lv$entier || lv$unite || 's ';
      ELSE
        lv$entier := lv$entier || lv$unite || ' ';
      END IF;
     
      IF lv$decimales IS NOT NULL THEN
        lv$decimales := to_word_fr(TO_NUMBER(lv$decimales));
        lv$entier  := lv$entier || 'et ';
     
      	--ajoute les zeros après la virgule
        IF li$nb_zero > 0  THEN
          FOR i  IN 1..li$nb_zero  LOOP
    	    lv$decimales := 'zero ' || lv$decimales;
          END LOOP;
        END IF;
     
        IF pn$nombre - TRUNC(TO_NUMBER (REPLACE (pn$nombre, ' ', ''))) > 0.1 THEN 
          lv$decimales := lv$decimales || lv$sous_unite || 's';
        ELSE
          lv$decimales := lv$decimales || lv$sous_unite;
        END IF;
      END IF;
     
      RETURN REPLACE(lv$entier || lv$decimales, '  ', ' ');
     
    END to_euro_fr;
    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SQL> SELECT to_euro_fr(81000.12) FROM dual;
     
    TO_EURO_FR(81000.12)
    --------------------------------------------------------------------------------
    quatre-vingt-un mille euros et douze centimes
     
    SQL> SELECT to_euro_fr(1.1) FROM dual;
     
    TO_EURO_FR(1.1)
    --------------------------------------------------------------------------------
    un euro et un centime
     
    SQL> SELECT to_euro_fr(1.012) FROM dual;
     
    TO_EURO_FR(1.012)
    --------------------------------------------------------------------------------
    un euro et zero douze centime

  10. #30
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT to_euro_fr(1.1) FROM dual;
    un euro et un centime
    moi j'aurais dit

    un euro et dix centimes

  11. #31
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    SELECT to_euro_fr(1.012) FROM dual;


    1 euro et zero un centime...

    voire

    1 euro et zero un virgule deux centime


    [edit]
    ou plus simplement
    ORA-20001 Le montant doit être de la format 99999.99

    ou alors
    #################

    comme dans
    to_char(12345,'999')
    [/edit]

  12. #32
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    SELECT to_word_fr(100101000) FROM dual
    cent millions cent mille


    Tu as déjà entendu parlé de utPLSQL unit testing de Steven Feuerstein, il y a aussi un module pour Toad qui te permet de tester et retester à fond tes fonctions...

    http://utplsql.sourceforge.net

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    SELECT to_euro_fr(1.012) FROM dual;


    1 euro et zero un centime...

    voire

    1 euro et zero un virgule deux centime


    [edit]
    ou plus simplement
    ORA-20001 Le montant doit être de la format 99999.99

    ou alors
    #################

    comme dans
    to_char(12345,'999')
    [/edit]
    Pas forcément

    A celui qui veut l'utiliser de choisir une limitation ou pas

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    SELECT to_word_fr(100101000) FROM dual
    cent millions cent mille


    Tu as déjà entendu parlé de utPLSQL unit testing de Steven Feuerstein, il y a aussi un module pour Toad qui te permet de tester et retester à fond tes fonctions...

    http://utplsql.sourceforge.net
    Ha non je ne connais pas

    Par contre, j'vois pas la faute là

    Le un mille c'est une horreur Pourtant j'ai bien NOT LIKE '%cent% un mille'... j'vais voir ça

    EDIT : faut ajouter un % :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND NOT (lv$entier LIKE '%cent% un mille'
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND NOT (lv$entier LIKE '%cent% un mille%'

  15. #35
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    1001000 => un million mille
    101000 => cent un mille
    100000 => cent mille

    ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    C'est bon ça

    SQL> SELECT to_word_fr(1001000) FROM dual;

    TO_WORD_FR(1001000)
    --------------------------------------------------------------------------------
    un million mille

    SQL> SELECT to_word_fr(101000) FROM dual;

    TO_WORD_FR(101000)
    --------------------------------------------------------------------------------
    cent un mille

    SQL>
    SQL> SELECT to_word_fr(100000) FROM dual;

    TO_WORD_FR(100000)
    --------------------------------------------------------------------------------
    cent mille

  17. #37
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    oui

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut


    Sympa de dire quand ça marche aussi

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Je peux mettre à jour la page source ou il y a encore des bugs à corriger ?

  20. #40
    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
    Points : 4 926
    Points
    4 926
    Par défaut
    SELECT to_word_fr(101000) FROM dual;
    cent mille ?


    Elle est où ta nouvelle version?


    quant à to_euro_fr, c'est pas au poil, et note que centime, ca veut dire centième d'euros!!!

    SELECT to_euro_fr(1.05) FROM dual;
    un euro et zero cinq centime
    un euro et cinq centimes

    SELECT to_euro_fr(1.10) FROM dual;
    un euro et un centime
    un euro et dix centimes

    SELECT to_euro_fr(1.012) FROM dual;
    un euro et zero douze centime
    un euro et un centime

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

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