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

Requêtes PostgreSQL Discussion :

Extraire une chaine dans un champ de type text [9.3]


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut Extraire une chaine dans un champ de type text
    Bonjour,
    J'ai besoin d'extraire une chaine de caractères a partir d'une autre , mais la taille de la sous chaine est variable, je vous donne un exemple :
    optionReference="3172",Attribute={PackId="3172",PackFlag="true"},updatedO2="N",optionType="PrepaidPack"}},OliControl={errorCode="430",oliId="1",accountId="5049024786",status="E",subscriptionId="5049024786",errorString="Insufficient balance"},Operation="MIGOPT"

    Je veux extraire la chaine en rouge qui commence toujours par : OliControl={ et finisse par } sachant que le contenu de la chaine en rouge est variable.

    J'ai fait ça mais ça marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select SUBSTR(msg, position('OliControl={' in msg) + 1, position('}' in msg) - position('OliControl={' in msg) - 1) from table where id  = 448210;
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select substring(msg from 'OliControl={(.+)}') as extract
      from table
     where id = 448210;

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    elle extrait bien à partir de OliControl={ mais elle stop pas au premier } trouvé

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    J'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select substring(msg from 'OliControl=(.*?})') as extract
      from table
     where id = 448210;
    Je pense que c'est oki.
    Merci pour votre aide.

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

Discussions similaires

  1. Comment trouver une chaine dans un champ xml ?
    Par nico-pyright(c) dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/08/2007, 10h44
  2. Extraire une chaine dans une richebox
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/03/2007, 14h19
  3. Réponses: 4
    Dernier message: 22/08/2006, 03h36
  4. Recherche d'une chaine dans un champ
    Par Cyberbob002 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 06/01/2006, 15h21
  5. Réponses: 2
    Dernier message: 10/07/2002, 11h51

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