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 :

Convertir un Blob en String [11gR2]


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut Convertir un Blob en String
    Bonjour,

    Je cherche à transformer un blob qui contient une chaîne de caractère en chaine de caractère.
    j'ai utilisé la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blb.blob_image,3200,1))  as message_text,
    j'obtient :

    c'est bien mon texte, mais le format ne semble pas être une vrai chaine de caractère.

    Y a t'il une autre solution ?

    Merci à vous

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Comment a été stockée ta chaine de caractère ?

    Que donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DBMS_LOB.SUBSTR(blb.blob_image,50,1)
    qui te donne le code hexa de ce qui est stocké ?

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Bonjour, merci de m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DBMS_LOB.SUBSTR(blb.blob_image,50,1)
    me renvoit par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FFFE46006F00720075006D00200064006500200070006C00650069006E00200064006500200073006F0063006900E9007400
    par contre je ne sais pas comment c'est stocké en amont dans la table, c'est fait par mon erp.

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

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il y a peut être une raison du codage des caractères sur 4 octets et une façon de le faire directement par Oracle, mais je n'ai pas trop cherché.

    Il va peut être falloir décoder.

    1/ Supprimer les 4 premiers caractères
    2/ Supprimer tous les couples Hexa 00 = chr(0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    REPLACE(UTL_RAW.CAST_TO_VARCHAR2(SUBSTR('FFFE46006F00720075006D00200064006500200070006C00650069006E00200064006500200073006F0063006900E9007400',5)), chr(0))
    FROM dual
     
    Forum de plein de sociét

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Merci à vous

    le code résultat devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    REPLACE(UTL_RAW.CAST_TO_VARCHAR2(SUBSTR(DBMS_LOB.SUBSTR(blb.blob_image,2000,1),5)), chr(0)) as message_text

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Ceci est mieux (substr sur le BLOB directement) : lire à partir du 3ème couple hexa.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REPLACE(UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blb.blob_image,2000,3)), chr(0)) as message_text

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

Discussions similaires

  1. Comment convertir un memorystream lu dans un blob en string
    Par colorid dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/11/2007, 23h30
  2. Comment convertir un TChartTitle en string ?
    Par marsupilami34 dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2005, 14h14
  3. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  4. [C#] Convertir des bytes en string
    Par sorcer1 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/02/2005, 15h52

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