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 Firebird Discussion :

cast d'un entier vers un char


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Par défaut cast d'un entier vers un char
    Bonjour

    voici mon code

    declare variable trbn char(4);

    begin
    trbn=T||cast(nb as char)
    end

    si nb est compris entre 0 et 9 ca fonctionne. Par contre si ca passe à 10 j'ai une erreur. j'ai essayé avec trbn=cast(nb as char(2)) mais pas mieux. Lorsque nb vaut 0 là j'ai un erreur.

    Comment puis je faire?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 687
    Billets dans le blog
    65
    Par défaut
    Salut,

    essaies avec varchar,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select cast(0 as VarChar(5)) from RDB$DATABASE  /// Donne '0'
    select cast(1 as VarChar(5)) from RDB$DATABASE  /// Donne '1'
    select cast(12 as VarChar(5)) from RDB$DATABASE  /// Donne '12'
    ...
    select cast(12345 as VarChar(5)) from RDB$DATABASE  /// Donne '12345'
    Cependant le problème restera la longueur de celui-ci en cas de débordement , tu obtiendras une erreur

    ---------------------------
    An IBPP error occurred.
    ---------------------------
    *** IBPP::SQLException ***
    Context: Statement::Fetch
    Message: isc_dsql_fetch failed.

    SQL Message : -413
    Overflow occurred during data type conversion.

    Engine Code : 335544334
    Engine Message :
    conversion error from string "123456"
    sur ce, il existe peut-être une UDF ou une fonction intégrée ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Par défaut
    Merci Sergio

    Il me reste à comprendre la différence entre char et varchar

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Firebird est capable de caster cela automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> select 'TT'||123456 from RDB$DATABASE;
     
    CONCATENATION 
    ============= 
    TT123456 
     
    SQL> select 'TT'||123456||'bla' from RDB$DATABASE;
     
    CONCATENATION    
    ================ 
    TT123456bla

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 291
    Par défaut
    Top ca!

    Merci

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

Discussions similaires

  1. [C# > C++] Comment convertir un sting^ vers un char* ?
    Par Elbarto dans le forum C++/CLI
    Réponses: 6
    Dernier message: 15/06/2006, 20h58
  2. [MFC - ATL] CString vers const char *
    Par VitamineC dans le forum MFC
    Réponses: 2
    Dernier message: 12/04/2006, 18h56
  3. Réponses: 8
    Dernier message: 22/03/2006, 18h24
  4. Réponses: 12
    Dernier message: 31/12/2005, 16h01
  5. Entier vers chaine
    Par litbos dans le forum C
    Réponses: 6
    Dernier message: 28/10/2005, 14h58

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