Oracle - Desplegar imagen formato BASE64 en forms

 
Vista:

Desplegar imagen formato BASE64 en forms

Publicado por RAUL LOZANO (2 intervenciones) el 17/04/2023 23:42:29
Buenas tardes, estoy recibiendo una imagen que esta en formato BASE64 a través de un Webservice

ejemplo de un extracto del dato en formato base64:

/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHCBYVFRgWFhUZGRgaHBwZHBoYHBgcHBwaGBwaHBgaGhgcIS4lHB4rIRgZJjgmKy8xNTU1HCQ7QDszPy40NTEBDAwMEA8QHxISHjQrJCs0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
etc etc

Necesito mostrar esa imagen en Oracle Forms, ya he probado guardar el dato en la base de datos en una columna CLOB, luego convertir ese dato a tipo BLOB y guardarlo en la base de datos, pero cuando leo el dato desde FORMS en un item tipo IMAGEN me aparece el dato en blanco.

alguien ha resuelto este problema?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Medir

Desplegar imagen formato BASE64 en forms

Publicado por Medir (1 intervención) el 17/06/2023 04:46:47
Aquí te dejo un ejemplo de cómo desplegar una imagen en formato Base64 en un formulario de Oracle:

1. En el formulario, inserta un elemento "Imagen" para mostrar la imagen.
2. En el trigger "WHEN-NEW-RECORD-INSTANCE" del bloque que contiene la imagen, agrega el siguiente código:

sql
DECLARE
l_blob BLOB;
l_raw RAW(32767);
l_base64 VARCHAR2(32767);
BEGIN
-- Obtener la imagen en formato BLOB (reemplaza 'mi_tabla' y 'mi_campo_blob' con los nombres correctos)
SELECT mi_campo_blob INTO l_blob FROM mi_tabla WHERE id = :mi_bloque.id;

-- Convertir el BLOB a RAW
DBMS_LOB.CONVERTTORAW(l_blob, l_raw, DBMS_LOB.LOBMAXSIZE);

-- Convertir el RAW a Base64
l_base64 := UTL_ENCODE.BASE64_ENCODE(l_raw);

-- Mostrar la imagen en el elemento "Imagen" del formulario (reemplaza 'mi_bloque' y 'mi_elemento_imagen' con los nombres correctos)
:mi_bloque.mi_elemento_imagen := l_base64;
END;


En este código, se utiliza la función `DBMS_LOB.CONVERTTORAW()` para convertir el BLOB que contiene la imagen a un tipo de datos RAW. Luego, se utiliza la función `UTL_ENCODE.BASE64_ENCODE()` para convertir el RAW a Base64. Finalmente, se asigna el valor Base64 al elemento "Imagen" del formulario.

Ten en cuenta que este código asume que ya tienes la imagen almacenada en una tabla de tu base de datos Oracle en formato BLOB. Si necesitas más información sobre cómo almacenar imágenes en una tabla de Oracle en formato BLOB, házmelo saber y estaré encantado de ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Desplegar imagen formato BASE64 en forms

Publicado por raul (2 intervenciones) el 20/06/2023 15:56:10
Le agradezco mucho la respuesta, me es de mucha utilidad

saludos desde panama
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar