wstawianie danych BLOB (np. zdjęć) do bazy
Co jest potrzebne do wstawiania zdjęć
Do wstawiania grafiki będziemy używali funkcji z pakietu DBMS_LOB.
Jak wygląda tabelka ze zdjęciami?
SQL> desc username.photos; Nazwa Null? Typ ------------------------------- -------- ---- FOTO BLOB PESEL VARCHAR2(11)
Przykładowa procedura wstawiająca zdjęcie
Procedura wstawia zdjęcie danej osoby. Zakładamy że nazwą zdjęcia jest pesel (bez rozszerzenia). Na podstawie numeru pesel znajdowana jest właściwa osoba w bazie. Należy zastąpić USERNAME nazwą użytkownika który ma posiadać procedury i w schemacie którego leżą potrzebne tabelki.
CREATE OR REPLACE PROCEDURE USERNAME.wstaw_zdjecie
(pesel_in NUMBER)
IS
nazwa_zdjecia VARCHAR(20);
bl BLOB;
bf BFILE;
filenum INTEGER;
BEGIN
nazwa_zdjecia:=TO_CHAR(pesel_in);
INSERT INTO username.photos(pesel,foto)
VALUES (pesel_in,empty_blob());
SELECT foto INTO bl
FROM username.photos
WHERE pesel= pesel_in;
bf:=bfilename('ZDJECIA',nazwa_zdjecia);
DBMS_LOB.fileopen(bf, Dbms_Lob.File_Readonly);
Gdzie muszą się znajdować zdjęcia?
Należy pamiętać że zdjęcia lub inne grafiki muszą być na lokalnym dysku serwera
Łukasz Goszczyński goszczu.pl