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

Macros et VBA Excel Discussion :

Récupération de données de type CLOB dans une base Oracle


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut Récupération de données de type CLOB dans une base Oracle
    Bonjour,

    Une nouvelle fois, je viens chercher de l'aide sur ce forum pour me sortir d'une impasse. J'espère que vous pourrez m'aider.

    Je dispose d'une base de données Oracle. Dans cette base de données, il y a une table contenant deux champs : un identifiant et un champ de type CLOB.

    Mon problème survient quand depuis vba, je cherche à importer dans Excel, le contenu de ce champ CLOB... Pour importer les données, je suis obligé de les convertir, depuis la requête SQL, en chaine de caractère à l'aide de la fonction : dbms_lob.substr.
    Malheureusement, cette fonction ne permet pas d'importer des chaines de plus de 4000 caractères.

    Auriez-vous une astuce pour contourner ce problème et ainsi récupérer dans Excel, via VBA, le contenu d'un champ de type CLOB de plus de 4000 caractères ?

    Merci pour votre aide
    Sylvain

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    tu peux les stocker dans un tableau de byte. C'est ce que recommande microsoft;

    j'ai retrouvé un lien ici

    j'espère que ça pourra t'aider.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut
    Salut Benjîle,

    Merci de ce retour rapide !
    Une question complémentaire. Ton lien renvoie vers une page traitant des données Oracle de type BLOB. Dans mon cas, je cherche à traiter des données CLOB. Est-ce pareil ?

    Ne maitrisant pas complètement ces recoins d'Excel, je voudrais m'éviter quelques tortures de cerveau si ce n'est en fait pas possible .

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    malheureusement ce n'est pas la même chose non mais ça vaut le coup d'essayer. CLOB c'est pour les chaînes de caractères alors que blob c'est pour du binaire. Cependant un tableau de byte est un tableau de données 8 bits ce qui correspond à la taille d'un caractère en ascii, alors pourquoi pas.

    J'ai pas fait de test, essaie. moi j'avais du faire un lien vers un champ blob

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 41
    Points
    41
    Par défaut
    A priori, une solution consisterait à imbriquer les fonctions "dbms_lob.substr".

    ça donnerait quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CléEnregistrement,dbms_lob.substr( CHAMP,4000,1),dbms_lob.substr( CHAMP,4000,4000),dbms_lob.substr( CHAMP,4000,8000) FROM TABLE;
    Il faut que je teste ceci. Je reviens dès que c'est fait ;-)

Discussions similaires

  1. [WD17] Récupération de données d'un tableau dans une combo
    Par sanpix dans le forum WinDev
    Réponses: 0
    Dernier message: 05/04/2014, 12h44
  2. récupération des données pour les afficher dans une ListView
    Par khoukha1 dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 14/06/2012, 14h59
  3. Réponses: 4
    Dernier message: 05/10/2009, 18h58
  4. Réponses: 2
    Dernier message: 30/11/2008, 21h10
  5. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57

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