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

MS SQL Server Discussion :

Transformer un champ CHAR en décimal


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut Transformer un champ CHAR en décimal
    Bonjour,

    J'utilise SQL SERVER 2000.

    Dans ma table, j'ai un champ QUALIF qui est défini en tant que CHAR(12). Ce champ est alimenté automatiquement par une appli et les valeurs sont donc, par exemple, '000000123.50'.
    Je souhaite alimenter une table qui, elle, devra contenir l'information QUALIF mais en decimal(12,2) afin de pouvoir, par la suite, faire des calculs.
    La fonction CAST(QUALIF as DECIMAL(12,2)) ne fonctionne pas.

    Quelle est l'astuce?Merci

  2. #2
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    bonjour,


    La fonction CAST(QUALIF as DECIMAL(12,2)) ne fonctionne pas.
    quelle est le message d'erreur ?

    verifies que tu n'as pas pas de chaine vide ou alphanumérique.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Le message d'erreur est: "valeur insérée trop grande pour colonne"

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    La structure de tes tables nous permettrons de mieux voir.


    A+

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Alors, dans ce cas, tu n'as qu'a augmenté la précision :
    Par Exemple DECIMAL(20,2) pourra faire l'affaire !!!
    Pourvu que la precision ne puisse pas ecceder le @@MAX_PRECISION soit 38 dans MS SQL SERVER 2000

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Même en augmentant la précision au max cela ne passe pas.

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Passant au dépistage !

    Et que te retourne la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT QUALIF
    FROM MaTable
    WHERE QUALIF IS NULL

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    et avec convert(DECIMAL(12,2), QUALIF) ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    la selection sur qualif is null ne ramene rien

  10. #10
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Et quel est le séparateur décimal dans ton panneau de configuration ?
    Est ce le point ou la virgule ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    la virgule

  12. #12
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Dans ces conditions un replace avant de faire un cast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    convert(DECIMAL(12,2), REPLACE(QUALIF,'.',',')
    Et là votre problème est solutionné !!!

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    SUPER
    MERCI BCP

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

Discussions similaires

  1. Transformer un champ Mémo en champ Texte
    Par laurent35 dans le forum Access
    Réponses: 7
    Dernier message: 27/09/2006, 13h22
  2. Transformer des champs T * en const T *
    Par Gruik dans le forum C
    Réponses: 4
    Dernier message: 09/08/2006, 11h27
  3. [FB] Concaterner un champ CHAR
    Par Neilos dans le forum SQL
    Réponses: 6
    Dernier message: 13/05/2006, 16h50
  4. Transformation de champ
    Par Zebulon777 dans le forum Access
    Réponses: 1
    Dernier message: 23/11/2005, 15h40
  5. Extraction des valeurs hexa d'un champ char
    Par Krispi dans le forum Fortran
    Réponses: 3
    Dernier message: 21/11/2005, 11h10

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