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

PL/SQL Oracle Discussion :

Extraire un PDF à partir d'un Blob Oracle encodé base64 [11g]


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Extraire un PDF à partir d'un Blob Oracle encodé base64
    Bonjour,

    J'ai dans une base de données Oracle un Blob encodé en base64 qui contient un PDF, comment
    avec un script PL/SQL décoder ce blob afin de récupérer et afficher correctement le fichier PDF.

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Voir package Utl_encode.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Base64 Blob to Blob
    j'ai trouve cette fonction pour decoder, mais elle concerne une base 64 clob to blob,
    je cherche plutôt Base64 blob to blob.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    CREATE OR REPLACE FUNCTION base64decode(p_clob CLOB)
      RETURN BLOB
    -- -----------------------------------------------------------------------------------
    -- File Name    : <a href="https://oracle-base.com/dba/miscellaneous/base64decode.sql" target="_blank">https://oracle-base.com/dba/miscella...se64decode.sql</a>
    -- Author       : Tim Hall
    -- Description  : Decodes a Base64 CLOB into a BLOB
    -- Last Modified: 09/11/2011
    -- -----------------------------------------------------------------------------------
    IS
      l_blob    BLOB;
      l_raw     RAW(32767);
      l_amt     NUMBER := 7700;
      l_offset  NUMBER := 1;
      l_temp    VARCHAR2(32767);
    BEGIN
      BEGIN
        DBMS_LOB.createtemporary (l_blob, FALSE, DBMS_LOB.CALL);
        LOOP
          DBMS_LOB.read(p_clob, l_amt, l_offset, l_temp);
          l_offset := l_offset + l_amt;
          l_raw    := UTL_ENCODE.base64_decode(UTL_RAW.cast_to_raw(l_temp));
          DBMS_LOB.append (l_blob, TO_BLOB(l_raw));
        END LOOP;
      EXCEPTION
        WHEN NO_DATA_FOUND THEN
          NULL;
      END;
      RETURN l_blob;
    END;
    /

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Réponse
    j'ai trouvé la solution avec cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Create Or Replace function DecodeToBlob(pBlob blob) return blob is
    -- Decodes a Base64 encoded clob into a blob
      MAX_DEC_CHUNK_LEN constant pls_integer := 14784; -- Don't change!!
      vLen pls_integer := coalesce(dbms_lob.getlength(pBlob), 0);
      vBufferRaw raw(32767);
      vBufferVarchar2 varchar2(32767 byte);
      vBufferSize integer := MAX_DEC_CHUNK_LEN;
      vOffset integer := 1;
      vResult blob;
    Begin
     
      case
        when vLen = 0 then
          vResult := case when pBlob is null then null else empty_blob() end;
        when vLen <= MAX_DEC_CHUNK_LEN then
          vResult := utl_encode.base64_decode(pBlob);
        when vLen > MAX_DEC_CHUNK_LEN then
          dbms_lob.createtemporary(vResult, false, dbms_lob.call);
          for i in 1..ceil(vLen / vBufferSize)
          loop
            dbms_lob.read(pBlob, vBufferSize, vOffset, vBufferVarchar2);
            vBufferRaw:=utl_encode.base64_decode(vBufferVarchar2);
            dbms_lob.writeappend(vResult, utl_raw.length(vBufferRaw), vBufferRaw);
            vOffset := vOffset + vBufferSize;
          end loop;
      end case;
      return vResult;
     
    end;

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

Discussions similaires

  1. Génération PDF à partir d'un Blob Oracle
    Par drake56 dans le forum C++
    Réponses: 20
    Dernier message: 22/07/2013, 14h46
  2. [1.x] Comment afficher un pdf à partir des données
    Par farhaenis dans le forum Symfony
    Réponses: 6
    Dernier message: 11/07/2011, 11h09
  3. [SQL-Server] comment afficher une image à partire d'un Blob sql server
    Par assousoft dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/09/2010, 22h46
  4. Afficher une image à partir d'un Blob
    Par reeda dans le forum JSF
    Réponses: 22
    Dernier message: 17/07/2009, 09h59
  5. [JDBC]ouvrir un fichier pdf à partir d'un blob
    Par souletis dans le forum JDBC
    Réponses: 5
    Dernier message: 25/01/2007, 21h03

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