Blob pl/sql

Bonjour,

J'ai un problème, quand j'export mes fichiers stocké en Blob dans la base de donnée ils sont illisibles, j'ai le bon nom, la bonne extension (exemple test.pdf) mais je ne peut pas les ouvrir ou alors ils contiennent des caractères bizarres.

Comment faire pour connaitre l'encodage et pouvoir les décoder correctement a l'extraction?

Merci

3 réponses

  1. Bonjour,

    A titre d'information :

    Avec certains languages et dépendament aussi du type
    de la BD (MySQL, SQL Serveur ou Oracle), il y a
    segmentation du Blob.

    Personnellement, j'en ai fait l'expérience avec Oracle
    et un language similaire à VB6, les Blobs étaient segmentés
    au moment de la sauvegarde, il était alors impératif
    de les récupérer avec une clause [Order By] de l'indice
    de segmentation.

    Ce pourrait être votre cas !

    Cdt

    Lupin
    1. Bonjour,

      Tout d'abord merci pour votre réponse.

      Pour extraire les fichiers j'utilise la commande DBMS_LOB.read avec un buffer de 32767 (je développe en PL/SQL) du coup les segments sont bien repris dans l'ordre.

      Cdt
      1. re:

        Oui selon ma doc, ton buffer est à la bonne taille. Mais comme
        je t'ai dit, sous SQLD, l'instruction de blobage segmente aussi en 32K.

        Il est clair que je n'ai pas utiliser l'instruction du PL/SQL, mais
        le problème semble assez similaire. Je recommande la doc
        de Oracle que tu trouveras ici :

        https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/toc.htm

        Le document est téléchargeable sous format PDF, et on y fournit
        des exemples explicites sur l'utilisation de la commande [DBMS_LOB].

        Suggestion, commence par blober un fichier plus petit que 32K,
        et relit le ensuite. Si celui-ci est bien lu, c'est qu'il y a segmentation
        pour les fichiers plus grand que 32K et la lecture des segments ne
        se fait pas dans le bon ordre, l'utilisation de l'instruction PL/SQL
        [DBMS_LOB.Read] ne signifie pas nécessairement que celle-ci
        ordonne les segments lors de la lecture.

        Je vais faire aussi un peu de lecture si j'ai le temps, j'apprends depuis
        près d'un an le PL/SQL et le sujet m'intéresse, si je trouve quelque
        chose, je te reviens :-).

        Cdt

        Lupin
        1. re:

          J'oubliais, sous quelle version d'Oracle est-tu ?

          Cdt

          Lupin