Aquí doy un ejemplo para mostrar BLOB
contenidos (PDF, imágenes) en una región en la página de Oracle Apex.
Suponga que tiene una pantalla de empleado y cada vez que el usuario abre esa pantalla para editar o ver el registro, desea mostrar la nómina del empleado, ya sea en formato de imagen o en formato PDF. Para realizar esta tarea, siga los siguientes pasos:
- En primer lugar, necesita una tabla en la que desee almacenar el
BLOB
contenido y la estructura de esa tabla debe ser la siguiente:
CREATE TABLE EMP_PAYSLIPS (EMPNO NUMBER, FILENAME VARCHAR2(200), REPORT BLOB, MIMETYPE VARCHAR2(100), CREATED_DATE DATE, CREATED_BY VARCHAR2(100) ); ALTER TABLE EMP_PAYSLIPS ADD CONSTRAINT PK_EMPPAYSLIPS PRIMARY KEY (EMPNO);
Nota: La columna MIMETYPE
tiene un papel importante aquí. Siempre que almacene un PDF en los BLOB
datos, MIMETYPE
debería ser y si almacena imágenes, entonces debería ser .application/pdf
MIMETYPE
image/jpeg
Además, consulte mi publicación anterior, en la que he dado un ejemplo para cargar archivos PDF en un campo BLOB en Oracle Apex .
- Ahora asumo que tiene datos en la tabla anterior.
- Ahora, en Oracle Apex, haga clic en Componentes compartidos > Proceso de aplicación y haga clic en el botón Crear para crear un Proceso de aplicación. La pantalla aparecerá como se muestra en la imagen de abajo.

- Especifique un nombre en el campo Nombre y, para Punto, seleccione Ajax Callback: Ejecute este proceso de aplicación cuando lo solicite una opción de proceso de página. Luego haga clic en el botón Siguiente .
- En el siguiente paso, agregue el siguiente código PL/SQL en la sección de código PL/SQL como se muestra a continuación:
DECLARE vBlob blob; vmimetype varchar2(50); BEGIN SELECT report, mimetype INTO vBlob, vmimetype FROM emp_payslips WHERE empno = V('P3_EMPNO'); owa_util.mime_header(vmimetype,false); htp.p('Content-Length: ' || dbms_lob.getlength(vBlob)); owa_util.http_header_close; wpg_docload.download_file(vBlob); exception when no_data_found then null; END;

- Luego haga clic en el botón Siguiente y en otra pantalla simplemente haga clic en el botón Finalizar para crear el Proceso de solicitud.
- Ahora abra la página en Oracle Apex en la que desea mostrar el
BLOB
contenido. - Cree una nueva región y configure el tipo como contenido estático y coloque el siguiente código en la fuente de texto, como se muestra en la imagen a continuación:
<p align="center"> <iframe src="f?p=&APP_ID.:0:&SESSION.:APPLICATION_PROCESS=display_emp_blob:NO::P3_EMPNO,&P3_EMPNO." width="99%" height="1000"> </iframe> </p>

Puede notar en el código anterior que estamos llamando al proceso de solicitud display_emp_blob
que acabamos de crear, utilizando el formato de URL de Apex.
Guarde los cambios y ejecute la página para probar. Cada vez que abra la pantalla Empleado en modo Editar, BLOB
se mostrarán datos en la región, ya sea una imagen o un archivo PDF.