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:
La procédure que j'utilise est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE test_image ( ID NUMBER, image_filename VARCHAR2(50), image BLOB );
Et quand je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
j'obtiens les messages d'erreurs suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 EXECUTE insert_image_file(1,'test_image.jpg');
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
Partager