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 d'un char en nombre..


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Points : 71
    Points
    71
    Par défaut Conversion d'un char en nombre..
    Bonjour à tous

    Je possède une table T1 avec un champ "C1", qui est un varchar2(30).
    Ce champ possède des valeurs comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    C1
    .....
    3.45
    54
    -1
    6.46
    6
    646
    -1
    93.21
    Le problème c'est que je souhaite effectuer des calculs sur ces nombres... qui sont de type texte Si je fait un calcul tout bête j'obtiens "invalid number"...

    Alors que si je fais quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select 3.43*7 from dual
    J'obtiens bien 24,01... Donc oracle arrive bien à calculer des nombres séparés par un point.. Dans ce cas j'ai alors modifié la table en passant le type "varchar2(30)" en "Number(10,2)", mais lors de l'insertion des enregistrements dans la table j'obtiens encore "invalid number" ...

    Une idée pour convertir toute une colonne directement? (donc après avoir inséré mes données en tant que varchar2(30)) ??
    Merci à tous

    EDIT : je suis sous Oracle 10g

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

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

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Recherche TO_NUMBER sur le forum, tu peux préciser le séparateur de décimales

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 134
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par McM Voir le message
    Recherche TO_NUMBER sur le forum, tu peux préciser le séparateur de décimales
    Parfait, merci beaucoup
    Ceci à résolu mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select to_number(C1,'99999999D999999','nls_numeric_characters=''. ''')from T1;
    Merci beaucoup, je ne connaissais pas (j'ai d'ailleurs recherché dans la FAQ SQL, mais je n'ai jamais eu l'idée de rechercher dans le PL/SQL Merci

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

Discussions similaires

  1. Conversion int en char *
    Par Trunks dans le forum C
    Réponses: 6
    Dernier message: 18/03/2006, 16h44
  2. conversion d'une char* en int
    Par damien99 dans le forum MFC
    Réponses: 25
    Dernier message: 06/03/2006, 12h27
  3. [MFC] Problème de conversion CString vers Char *
    Par Darkenshin dans le forum MFC
    Réponses: 10
    Dernier message: 02/12/2005, 14h42
  4. [Conversion]Convertir un char[] en int
    Par ThanosT dans le forum Général Java
    Réponses: 10
    Dernier message: 11/11/2005, 12h23
  5. "Conversion" d'un char en int ou longueur
    Par Michaël dans le forum C
    Réponses: 6
    Dernier message: 15/08/2003, 11h40

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