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

PostgreSQL Discussion :

Conversion chaîne de caractère en nombre décimal


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Conversion chaîne de caractère en nombre décimal
    Bonjour,

    je souhaite convertir dans une table une colonne de type varchar en type real. Je voulais utiliser la fonction to_number stocké dans Postgres mais je n'arrive pas à trouver d'exemple sur comment déclarer les champs d'entrée (dans ma table, hauteur_chute) et de sortie (hauteur_chute_reel)

    Je voulais créer une fonction équivalent autrement si ce n'est pas possible avec to_number mais là encore ca bloque sur la syntaxe ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Create function_numeric (VARCHAR, REAL) RETURNS REAL AS '
    DECLARE
    var1 ALIAS FOR $1;
    var2 ALIAS FOR $2;
    BEGIN
    SELECT hauteur_chute AS var1 FROM bdsat.obs_places_roe;
    SELECT hauteur_chute_reel AS var2 FROM bdsat.obs_places_roe;
    END;
    ' langage 'plpgsql';
    Si quelqu'un peut m'aiguiller avec cette fonction?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    La fonction s'éloigne trop du problème à résoudre.
    Apparemment il faut que tu fasses simplement une requête du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update table SET col_type_reel = to_number(col_type_texte, format)
    Et suivant le format du texte, peut-être qu'un simple CAST serait préférable à to_number.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour la réponse Désolé de répondre si tardivement mais j'étais en déplacement

    J'ai essayé les deux solutions donc pour la conversion de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE bdsat.obs_places_roe SET hauteur_chute_reel = to_number(hauteur_chute, '99G999D9S')
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast(obs_places_roe.hauteur_chute) as numeric(5,2) FROM bdsat.obs_places_roe
    mais j'ai une erreur de syntaxe à chaque fois que je n'arrive pas à identifier...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ********** Erreur **********
     
    ERREUR: la colonne « hauteur_chute_reel » est de type real mais l'expression est de type character varying
    État SQL :42804
    Astuce : Vous devez réécrire l'expression ou lui appliquer une transformation de type.
    Caractère : 59

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/03/2010, 21h22
  2. Conversion chaîne de caractère/valeur numérique
    Par julieng31 dans le forum Débuter
    Réponses: 5
    Dernier message: 03/06/2009, 17h15
  3. Convertir une chaine de caractères en nombre décimal
    Par hainaoui dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 13/05/2009, 17h40
  4. Conversion chaine de caractères en nombre décimal
    Par lodan dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2009, 20h11

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