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 :

Conversion char vers number (to_number)


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Conversion char vers number (to_number)
    J'ai une colonne X avec des valeurs au format varchar que je dois convertir en format number.
    X 0.2545 --> 0.2545
    X 0.25451 --> 0.2545
    X 10.214558 -->10.2145

    La chaine de caractere de la colone X est variable
    Jutilise la commande
    select to_number(X, '9999.9999') from dual;
    Mon probème se situe dans le 3 ème cas,lorsque le nombre de caractères après la virgule est supérieur à 4 cela ne fonctionne pas Erreur number invalid
    Y a t'il une astuce pour ne pas tenir compte du nombre de caracteres après la virgule ?

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Essaie comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_number(substr(X, 1, instr(X, '.') + 4), '9999.9999')

  3. #3
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Vous pouvez utiliser to_number sans préciser le format.

    Que voulez-vous faire exactement ?

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    TO_NUMBER(expr [, fmt [, 'nlsparam' ] ])

    Purpose

    TO_NUMBER converts expr to a value of NUMBER datatype. The expr can be a BINARY_FLOAT or BINARY_DOUBLE value or a value of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype containing a number in the format specified by the optional format model fmt.
    Or votre valeur 10.214558 ne respect pas le format '9999.9999' mais le format '9999.999999'

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Le to_number seul ne fonctionne que si la chaine de carcteres contient une virgule,avec le point ne fonctionne pas

  6. #6
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Mais non ça dépend des paramétré NLS_NUMERIC_CHARACTERS

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

Discussions similaires

  1. conversion char vers bin puis vers dec
    Par ahmednaess dans le forum C
    Réponses: 8
    Dernier message: 17/05/2013, 12h38
  2. Problème de conversion char vers binary
    Par uuioga dans le forum PL/SQL
    Réponses: 1
    Dernier message: 01/11/2012, 09h24
  3. Probléme de conversion char vers datetime
    Par locs dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 28/02/2007, 16h29
  4. [Clé de registre] Conversion char* vers unsigned char*
    Par The Lord of Nesquik dans le forum C
    Réponses: 7
    Dernier message: 04/07/2006, 00h30
  5. Conversion char * vers wchar_t
    Par Zapan dans le forum C++
    Réponses: 4
    Dernier message: 24/02/2005, 16h56

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