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

DB2 Discussion :

Récupération d'une partie d'un champ CLOB


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut Récupération d'une partie d'un champ CLOB
    Bonjour,

    Ma base de données DB2 contient une table avec une colonne de type CLOB. Dans cette colonne est stockée des données au format pseudo XML.

    Mon objectif est de récupérer certaines informations contenues dans le XML stocké.

    J'ai essayé qqchose dans ce goût là qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT substr(cast(XML as varchar(32000)), POSSTR(XML,'MonTexte'), 20)
    FROM TABLE
    WHERE CHAMP = VALEUR
    Cependant si mon XML fait plus de 32000 caractères et que ma châine recherchée est justement au delà de cette limite, cela ne fonctionne plus du tout

    Est-ce que quelqu'un aurait une solution qui m'assurerait de récupérer les informations quelque soit la taille de la valeur du champ ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Peux-tu indiquer le DB2 sur lequel tu travailles (z, i, luw ?)

    Et dans quel cadre exécutes-tu cette requête ?

    Si c'est dans un programme, la méthode peut dépendre du langage (ainsi que précompilateur, et compilateur)

    Si c'est "à la main", là je ne vois pas comment faire... peut-être en allant voir directement dans la table des lobs...

  3. #3
    Membre Expert Avatar de bernard59139
    Profil pro
    Retired
    Inscrit en
    Octobre 2006
    Messages
    966
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retired

    Informations forums :
    Inscription : Octobre 2006
    Messages : 966
    Par défaut
    Normalement, db2 permet de récupérer des trucs XML, mais la colonne doit être XML.
    Sinon, je ne connais pas d'autre moyen que de passer par un programme.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut
    Je travaille sur la version 9.5FP3 de DB2.

    Mon but est de faire une requête SQL qui me permet de récupérer les informations nécessaires. Derrière je mettrais un petit batch qui exécutera la requête. Donc il faut que cela fonctionne qu'avec du SQL "pur".

    La table des LOBS ?

    Ma colonne est de type CLOB et qui contient du XML mais je n'ai pas trouvé de d'exemple de requête me permettant de récupérer les informations voulues.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Par défaut
    Avec "9.5FP3", je suppose que c'est du DB2 LUW (Linux, Unix, Windows).

    Ensuite par "petit batch", entends-tu un script qui soumet une requête SQL à un interpréteur ou un programme ?
    D'après les autres éléments, je vais supposer un script, mais une confirmation est la bienvenue.

    Et malheureusement, comme l'a dit bernard, je ne pense pas que ce soit possible.
    En effet, les Lob n'ont pas vocation d'être exploités : ce sont des larges objets juste stockés.
    Pour information, les lobs ne sont pas stocké physiquement dans la table ou ils sont définis : il n'y a dans la colonne déclarée en LOB qu'un ROWID se référant à des données dans une table technique pour le stockage des lob, table technique qui doit être définie à la création de la table principale.

    Si tu pars sur un programme, la doc officielle IBM fournit tout ce qu'il faut pour gérer les Lob dans divers langages dont le c.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut
    Bon au moins j'ai 2 avis qui vont dans le sens que c'est pas possible en SQL natif et qu'il faut forcément faire un script permettant de travailler sur le champ type CLOB.

    Merci beaucoup.

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

Discussions similaires

  1. [MySQL] récupération d'une partie du champ BD
    Par dlhp59 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2014, 21h56
  2. [WD-2000] Récupération d'une partie de la valeur d'un champ de fusion
    Par juju05 dans le forum Word
    Réponses: 1
    Dernier message: 29/11/2010, 18h16
  3. Recherche d'une partie d'un champ texte
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 13/01/2006, 18h04
  4. Select sur une partie d'un champs texte
    Par dl_jarod dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/11/2005, 15h25
  5. tri sur une partie d'un champ
    Par yoline dans le forum Access
    Réponses: 4
    Dernier message: 19/09/2005, 11h25

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