sql >> Base de Datos >  >> RDS >> Oracle

Carga de datos de imagen en columnas BLOB en Oracle

Tiene varios archivos de imagen JPG, PNG, GIF y BMP que deben administrarse y respaldarse en la base de datos
y necesita una forma de realizar una carga inicial en la base de datos.

Cargar LOB binarios es un poco más simple que cargar LOB basados ​​en texto.

Cree una secuencia para el identificador único de su tabla de imágenes, además de la propia tabla:

crear secuencia img_seq;

crear imagen de tabla
(
img_num number,
img_nm varchar2(100),
img_blb blob,
ins_ts timestamp
);

A continuación, ejecute un bloque anónimo para cargar la imagen SCREEN CAPTURE.BMP en la tabla de su base de datos:

declarar
src_blb bfile; /* apunta al BLOB de origen en el sistema de archivos */
dst_blb blob; /* BLOB de destino en la tabla */
src_img_nm varchar2(100) :='Screen Capture.bmp';
src_offset integer :=1; /* dónde empezar en el BLOB fuente */
dst_offset integer :=1; /* dónde comenzar en el BLOB de destino */
begin
src_blb :=bfilename('LOB_SRC',src_img_nm);
insertar en la imagen (img_num, img_nm, img_blb, ins_ts)
values(img_seq.nextval, src_img_nm, empty_blob(), systimestamp)
devolviendo img_blb a dst_blb;
dbms_lob.open(src_blb, dbms_lob.lob_readonly);
dbms_lob.loadblobfromfile
(
dest_lob => dst_blb,
src_bfile => src_blb,
cantidad => dbms_lob.lobmaxsize,
dest_offset => dst_offset,
src_offset => src_offset
);
dbms_lob.close(src_blb);
commit;
dbms_output.put_line('Escribió BLOB en la tabla:' || src_img_nm);
end;

Después de ejecutar este bloque, la imagen se cargará en blob y podrá verificar el registro con el siguiente comando:

seleccione img_num, img_nm, ins_ts, length(img_blb) de la imagen;