database e hai bisogno di un modo per eseguire un caricamento iniziale nel database.
Il caricamento di LOB binari è un po' più semplice del caricamento di LOB basati su testo.
Crea una sequenza per l'identificatore univoco della tabella delle immagini, più la tabella stessa:
crea sequenza img_seq;
crea immagine tabella
(
img_num numero,
img_nm varchar2(100),
img_blb blob,
ins_ts timestamp
);
Quindi, esegui un blocco anonimo per caricare l'immagine SCREEN CAPTURE.BMP nella tabella del database:
dichiara
src_blb bfile; /* punta al BLOB di origine sul file system */
dst_blb blob; /* BLOB di destinazione nella tabella */
src_img_nm varchar2(100) :='Screen Capture.bmp';
src_offset intero :=1; /* dove iniziare nel BLOB di origine */
dst_offset intero :=1; /* dove iniziare nel BLOB di destinazione */
begin
src_blb :=bfilename('LOB_SRC',src_img_nm);
insert into image (img_num, img_nm, img_blb, ins_ts)
values(img_seq.nextval, src_img_nm, empty_blob(), systimestamp)
restituendo img_blb in dst_blb;
dbms_lob.open(src_blb, dbms_lob.lob_readonly);
dbms_lob.loadblobfromfile
(
dest_lob => dst_blb,
src_bfile => src_blb,
amount => dbms_lob.lobmaxsize,
dest_offset => dst_offset,
src_offset => src_offset
);
dbms_lob.close(src_blb);
commit;
dbms_output.put_line('Wrote BLOB to table:' || src_img_nm);
end;
Dopo aver eseguito questo blocco, l'immagine verrà caricata nel BLOB e puoi controllare il record con il seguente comando:
seleziona img_num, img_nm, ins_ts, length(img_blb) dall'immagine;