1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| CREATE OR REPLACE PACKAGE sql_blob IS
-- Procédure servant à ajouter un BLOB à notre table.
-- p_id correspond à l'id
-- p_name correspond au nom du fichier à inserer.
PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no NUMBER, p_note VARCHAR2,
p_name VARCHAR2, p_lastChange VARCHAR2, p_lastDate DATE,
DAMREPAIR NUMBER, DAMHISTO NUMBER,DAMWRESP NUMBER,TD_HI_METHOD NUMBER,
TEARDOWN NUMBER,TESTID NUMBER,DAMAGEID NUMBER,FACILITY1 NUMBER,
FACILITY2 NUMBER,FACILITY3 NUMBER);
END sql_blob;
/
show err;
CREATE OR REPLACE PACKAGE BODY sql_blob IS
PROCEDURE add_blob(p_id NUMBER, p_title VARCHAR2, p_DATE DATE, p_no NUMBER, p_note VARCHAR2,
p_name VARCHAR2, p_lastChange VARCHAR2, p_lastDate DATE,
DAMREPAIR NUMBER, DAMHISTO NUMBER,DAMWRESP NUMBER,TD_HI_METHOD NUMBER,
TEARDOWN NUMBER,TESTID NUMBER,DAMAGEID NUMBER,FACILITY1 NUMBER,
FACILITY2 NUMBER,FACILITY3 NUMBER) IS
v_blob BLOB;
v_bfile BFILE;
BEGIN
-- On insére la ligne avec un blob vide dont on récupère le pointeur
INSERT INTO T_PICTURE
VALUES
(p_id, p_title, p_DATE, p_no, p_note, empty_blob(), p_lastChange, p_lastDate, DAMREPAIR,
DAMHISTO,DAMWRESP,TD_HI_METHOD,TEARDOWN,TESTID,DAMAGEID,FACILITY1,FACILITY2,FACILITY3);
-- On déclare un pointeur vers notre fichier
v_bfile := bfilename(directory => 'Pictures', filename => p_name);
-- On ouvre ce fichier
dbms_lob.fileopen(v_bfile);
-- On rempli l'emplacement du BLOB vide dans la table avec le contenu de notre fichier
dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile));
-- On ferme le fichier
dbms_lob.fileclose(v_bfile);
END;
END sql_blob;
/
show err; |
Partager