sql >> Database teknologi >  >> RDS >> Oracle

Indlæser billeddata i BLOB-kolonner i Oracle

Du har forskellige JPG-, PNG-, GIF- og BMP-billedfiler, der skal administreres og sikkerhedskopieres i
databasen, og du har brug for en måde at indlæse databasen på.

Indlæsning af binære LOB'er er en smule enklere end at indlæse tekstbaserede LOB'er.

Opret en sekvens for din billedtabels unikke identifikator plus selve tabellen:

opret sekvens img_seq;

opret tabelbillede
(
img_num nummer,
img_nm varchar2(100),
img_blb blob,
ins_ts tidsstempel
);

Kør derefter en anonym blok for at indlæse billedet SCREEN CAPTURE.BMP i din databasetabel:

erklære
src_blb bfile; /* peg på kilde BLOB på filsystemet */
dst_blb blob; /* destination BLOB i tabel */
src_img_nm varchar2(100) :='Screen Capture.bmp';
src_offset heltal :=1; /* hvor skal man starte i kilden BLOB */
dst_offset heltal :=1; /* hvor skal man starte i målet BLOB */
begynd
src_blb :=bfilename('LOB_SRC',src_img_nm);
indsæt i billedet (img_num, img_nm, img_blb, ins_ts)
values(img_seq.nextval, src_img_nm, empty_blob(), systimestamp)
returnerer img_blb til dst_blb;
dbms_lob.open(src_blb, dbms_lob.lob_readonly);
dbms /flobe>(
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('Skrev BLOB til tabellen:' || src_img_nm);
slut;

Efter at have kørt denne blok, vil billedet blive indlæst i blob, og du kan kontrollere posten med følgende kommando:

vælg img_num, img_nm, ins_ts, length(img_blb) fra billedet;

  1. Sådan sikkerhedskopieres og gendannes en PostgreSQL-database

  2. Sådan genereres et tilfældigt heltal inden for et område i MariaDB

  3. Hvordan opretter man en SQL-visning med SQLAlchemy?

  4. En guide til MySQL-indekser