Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Laden von Bilddaten in BLOB-Spalten in Oracle

Sie haben verschiedene JPG-, PNG-, GIF- und BMP-Bilddateien, die in der
Datenbank verwaltet und gesichert werden müssen, und Sie brauchen eine Möglichkeit, einen anfänglichen Ladevorgang in die Datenbank durchzuführen.

Das Laden von binären LOBs ist etwas einfacher als das Laden von textbasierten LOBs.

Erstellen Sie eine Sequenz für die eindeutige Kennung Ihrer Bildtabelle und die Tabelle selbst:

Sequenz erstellen img_seq;

Tabellenbild erstellen
(
img_num number,
img_nm varchar2(100),
img_blb blob,
ins_ts timestamp
);

Führen Sie als Nächstes einen anonymen Block aus, um das Bild SCREEN CAPTURE.BMP in Ihre Datenbanktabelle zu laden:

deklarieren
src_blb bfile; /* auf Quell-BLOB im Dateisystem verweisen */
dst_blb blob; /* Ziel-BLOB in Tabelle */
src_img_nm varchar2(100) :='Screen Capture.bmp';
src_offset integer :=1; /* wo im Quell-BLOB beginnen soll */
dst_offset integer :=1; /* wo im Ziel-BLOB beginnen soll */
begin
src_blb :=bfilename('LOB_SRC',src_img_nm);
ins Bild einfügen (img_num, img_nm, img_blb, ins_ts)
values(img_seq.nextval, src_img_nm, empty_blob(), systimestamp)
Rückgabe von 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('BLOB in Tabelle geschrieben:' || src_img_nm);
end;

Nach dem Ausführen dieses Blocks wird das Bild in Blob geladen und Sie können den Datensatz mit dem folgenden Befehl überprüfen:

select img_num, img_nm, ins_ts, length(img_blb) from image;