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
|
CREATE OR REPLACE PROCEDURE AJOUT_PJ (pID_PJ IN INTEGER,
pFilename IN VARCHAR2)
IS
fils BFILE;
amt INTEGER;
lobd BLOB;
BEGIN
BEGIN
BEGIN
INSERT INTO TABLE_PJ (ID_PJ, PJ)
VALUES (pID_PJ, EMPTY_BLOB ());
SELECT pj
INTO lobd
FROM table_pj
WHERE id_pj = pId_pj;
fils := BFILENAME ('MY_IMAGE_DIR', pfilename);
DBMS_LOB.fileopen (fils, DBMS_LOB.file_readonly);
amt := DBMS_LOB.getlength (fils);
DBMS_LOB.loadfromfile (lobd, fils, amt);
DBMS_LOB.fileclose (fils);
EXCEPTION
WHEN OTHERS
THEN
IF (DBMS_LOB.fileisopen (fils) = 1)
THEN
DBMS_LOB.fileclose (fils);
END IF;
RAISE;
END;
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (
-20294,
'{8}-Erreur lors de l''ajout d''une PJ de la documentation commerciale n° ['
|| pID_PJ
|| '] '
|| SQLERRM);
END; |
Partager