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 texte num


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut Conversion texte num
    Bonjour à tous,
    j'ai cette partie de requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    TO_NUMBER(TRIM(REPLACE(SUBSTR(LOG.DESCRIPTION,INSTR(LOG.DESCRIPTION,'REL Notes :',1,1)+11,2),CHR(10),CHR(32))))  REL_NOTES, 
    ...
    pour récupérer la le "2 de "REL Notes : 2"
    qui plante lamentablement quand la ligne contenant 'REL Notes : ' n'existe pas. Normal.
    Je suis débutant en SQL, je peux faire comment pour tester si l'argument transmis à To_Number est bien numérique, et sinon transmettre "0" par défaut ?
    Merci à tous

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Comme ceci par exemple.

  3. #3
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    En fait ma demande n'est pas claire : la question n'est pas comment récupérer le "2", mais
    quel code insérer pour que si la ligne n'existe pas ou si le caractère situé la ou j'attends le "2" n'est pas numérique renvoyer 0 par défaut.

  4. #4
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut,

    Tu peux encapsuler ton argument dans un CASE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TO_NUMBER(CASE TonTestFormatNumerique
                     WHEN 1 THEN TaFormuleBarbare
                     ELSE 0 END)

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Ou sinon un simple coalesce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    With SR as
    (
    select 1 as num, 'REL Notes : 2' as des from dual union all
    select 2       , 'REL Notes : 18'       from dual union all
    select 3       , 'REL Notes :   '       from dual union all
    select 4       , 'REL Notes :'          from dual union all
    select 5       , 'totototot'            from dual
    )
    select num, des
         , TO_NUMBER(COALESCE(TRIM(REPLACE(SUBSTR(DES, INSTR(DES, 'REL Notes :', 1, 1) + 11), CHR(10), CHR(32))), '0')) as rel_notes
      from SR;
     
    NUM DES            REL_NOTES
    --- -------------- ---------
      1 REL Notes : 2          2 
      2 REL Notes : 18        18 
      3 REL Notes :            0 
      4 REL Notes :            0 
      5 totototot              0

Discussions similaires

  1. conversion texte date
    Par shinta dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2008, 21h20
  2. Conversion Texte ASCII -> Unicode
    Par lesouriciergris dans le forum C++
    Réponses: 6
    Dernier message: 26/04/2006, 20h43
  3. Conversion texte Ascii vers Image ou Pdf
    Par davydreyAXESS dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2006, 15h45
  4. Conversion Texte en Hexadécimal (char*)
    Par kilowat dans le forum C++
    Réponses: 6
    Dernier message: 11/06/2005, 13h40
  5. conversion text vers integer
    Par jawad.t dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 10/06/2005, 20h35

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