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 de varchar en entier


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut Conversion de varchar en entier
    bonjour,

    comment convertir des varchar en entier ?

    select replace( substr( DMOF, instr(DMOF,'rato')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rato')+7) ),'', null )
    from PPM_P where IDEN='383545';
    affiche 16
    c 'est à dire
    replace( substr( DMOF, instr(DMOF,'rato')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rato')+7) ),'', null ) est égal à 16
    mais pourquoi alors çà ne marche pas quand je fais

    select DMOF from PPM_P
    where IDEN='383545' and
    replace( substr( DMOF, instr(DMOF,'rato')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rato')+7) ),'', null )=16;
    ou

    select DMOF from PPM_P
    where IDEN='383545' and
    replace( substr( DMOF, instr(DMOF,'rato')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rato')+7) ),'', null )='16';
    j'ai toujours ce message

    ORA-00936: missing expression
    sincères mercis
    lastmagik

  2. #2
    Invité
    Invité(e)

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Si tu nous précisais la structure de la colonne dont tu veux extraire cet entier, ce serait sans doute plus facile pour t'aider.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Pas d'idée sur le message d'erreur, la requête est lancée telle quelle en sql+ ou sous sqldev ou toad ?

    Le replace (..., '', NULL) ne sert à rien

    Qu'est ce qu'il y a dans dmof pour cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT dmof, SUBSTR( DMOF, INSTR(DMOF,'rato')+8, (INSTR(DMOF,'FN')-1) - (INSTR(DMOF,'rato')+7) ) AS rpl
    FROM PPM_P 
    WHERE IDEN='383545'

  5. #5
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut suite réponses
    bonjour,

    merci de avoir lu mon méssage.

    al1_24 >
    Name Type
    DMOF VARCHAR2(300)
    McM >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> select DMOF from PPM_P where IDENT='3545';
     
    DMOF
    --------------------------------------------------------------------------------
    RD
       30/06/2011 f
                    14/05/2009 l
                                 -999999999 rat_idx 16 FN 3 FD
                                                               10/06/2011 las
    t_notif
            30/06/2011 ac 0 sc_num 71795718434700
    SQL> select replace( substr( DMOF, instr(DMOF,'rat_idx')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rat_idx')+7) ),'', null ) as sali from PPM_P where IDENT='3545';

    SALI
    --------------------------------------------------------------------------------
    16
    en effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    replace( substr( DMOF, instr(DMOF,'rat_idx')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rat_idx')+7) ),'', null ) as sali
    est censé retourner la valeur de 16 mais je souhaite qu il soit typé en entier.
    C'est pour pouvoir mieux le manipuler et surtout pour faire comparer pour la condition where sali=16

    sincères mercis
    lasmagik

  6. #6
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,

    Le problème vient du fait que la chaîne contient un espace à la fin.
    Pour le voir, il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT '>' || REPLACE( substr( DMOF, instr(DMOF,'rat_idx')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rat_idx')+7) ),'', NULL ) || '>' AS sali...
    Le résultat est La bonne syntaxe pour obtenir 16 sans espace à la fin est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REPLACE( substr( DMOF, instr(DMOF,'rat_idx')+8, (instr(DMOF,'FN')-1) - (instr(DMOF,'rat_idx')+8) ),'', NULL ) AS sali

  7. #7
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut re formulation de la question
    bonjour à tous et à tedo01,

    merci tedo01 tu as raison il y a un espace

    mais avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select SLAM from PPM_P where IDENT='3545';
    ce qui m'interresse c'est que avec quelle commande je dois faire pour enlever tous les espaces dans SLAM.

    une fois les espaces enlevés j'ai '4518' mais en tant que chaîne de caractères.

    et ensuite comment '4518' convertir en entier 4518.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    select 
    to_number( REPLACE( SLAM ,'', null ) ) 
    from PPM_P 
    where IDENT='3545';
    mais çà ne marche pas que dois je faire pour enlever les espaces, et ensuite faire la conversion en entier ?

    sincères mercis
    lastmagik

Discussions similaires

  1. Conversion chaine de caractère => entier (ordre des caractères primordial car ADN)
    Par ctobini dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/09/2007, 11h20
  2. Problème Conversion REAL --> VARCHAR
    Par YOYOVbSQL dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2006, 18h03
  3. Conversion de varchar en float possible ?
    Par toyyo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/12/2005, 17h05
  4. Conversion de chaîne en entier
    Par SkYsO dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2005, 11h43

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