sql >> Database >  >> RDS >> Oracle

Afbeeldingsgegevens laden in BLOB-kolommen in Oracle

Je hebt verschillende JPG-, PNG-, GIF- en BMP-afbeeldingsbestanden die moeten worden beheerd en waarvan een back-up moet worden gemaakt in de
database, en je hebt een manier nodig om de database voor het eerst te laden.

Het laden van binaire LOB's is iets eenvoudiger dan het laden van op tekst gebaseerde LOB's.

Maak een reeks voor de unieke identificatie van uw afbeeldingstabel, plus de tabel zelf:

maak reeks img_seq;

tabelafbeelding maken
(
img_num-nummer,
img_nm varchar2(100),
img_blb blob,
ins_ts tijdstempel
);

Voer vervolgens een anoniem blok uit om de afbeelding SCREEN CAPTURE.BMP in uw databasetabel te laden:

declareer
src_blb bbestand; /* wijs naar bron-BLOB op bestandssysteem */
dst_blb blob; /* bestemmings-BLOB in tabel */
src_img_nm varchar2(100) :='Screen Capture.bmp';
src_offset integer :=1; /* waar te beginnen in de bron-BLOB */
dst_offset integer :=1; /* waar te beginnen in de doel-BLOB */
begin
src_blb :=bfilename('LOB_SRC',src_img_nm);
invoegen in afbeelding (img_num, img_nm, img_blb, ins_ts)
values(img_seq.nextval, src_img_nm, empty_blob(), systimestamp)
img_blb terugzetten in dst_blb;
dbms_lob.open(src_blb, dbms_lob.lob_readonly);
dbbloms);>(
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('Schreef BLOB naar tabel:' || src_img_nm);
end;

Nadat dit blok is uitgevoerd, wordt de afbeelding in de blob geladen en kunt u de record controleren met het volgende commando:

selecteer img_num, img_nm, ins_ts, length(img_blb) van afbeelding;

  1. CAST()-functie in Oracle

  2. Online SQL-syntaxiscontrole die voldoet aan meerdere databases

  3. Hoe een afbeelding naar een bytearray te converteren met alleen javascript om de afbeelding op de sql-server op te slaan?

  4. 3 manieren om de sortering van een kolom in MariaDB te krijgen