Problème lors de l'éxécution d'une procédure stockée
Bonjour à tous,
J'essaie de créer une procédure stockée qui permet d’insérer une image dans un BLOB.
Ma table est la suivante:
Code:
1 2 3 4 5 6 7
|
CREATE TABLE test_image
(
ID NUMBER,
image_filename VARCHAR2(50),
image BLOB
); |
La procédure que j'utilise est:
Code:
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 insert_image_file (p_id NUMBER, p_image_name IN VARCHAR2)
IS
src_file BFILE;
dst_file BLOB;
lgh_file BINARY_INTEGER;
BEGIN
src_file := BFILENAME ('image_DIR', p_image_name);
-- insert a NULL record to lock
INSERT INTO test_image
(ID, image_name, image
)
VALUES (p_id, p_image_name, EMPTY_BLOB ()
)
RETURNING image
INTO dst_file;
-- lock record
SELECT image
INTO dst_file
FROM test_image
WHERE ID = p_id AND image_filename = p_image_name
FOR UPDATE;
-- open the file
DBMS_LOB.fileopen (src_file, DBMS_LOB.file_readonly);
-- determine length
lgh_file := DBMS_LOB.getlength (src_file);
-- read the file
DBMS_LOB.loadfromfile (dst_file, src_file, lgh_file);
-- update the blob field
UPDATE test_image
SET image = dst_file
WHERE ID = p_id AND image_filename = p_image_name;
-- close file
DBMS_LOB.fileclose (src_file);
END insert_image_file; |
Et quand je fais
Code:
1 2
|
EXECUTE insert_image_file(1,'test_image.jpg'); |
j'obtiens les messages d'erreurs suivants:
ERREUR Ó la ligne 1 :
ORA-22285: rÚpertoire ou fichier inexistant pour l'opÚration FILEOPEN
ORA-06512: Ó "SYS.DBMS_LOB", ligne 523
ORA-06512: Ó "FTF.INSERT_IMAGE_FILE", ligne 26
ORA-06512: Ó ligne 1
qui peut m'aider svp? Merci