j'ai trouvé cette procedure dans votre page faq oracle;
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
| CREATE OR REPLACE PROCEDURE Insert_document2
(
PC$Image IN VARCHAR2
) IS
L$Blob BLOB;
L$Bfile BFILE;
LN$Len NUMBER := dbms_lob.lobmaxsize;
LN$Num NUMBER ;
LN$src_off PLS_INTEGER := 1 ;
LN$dst_off PLS_INTEGER := 1 ;
LN$Langctx NUMBER := dbms_lob.default_lang_ctx ;
LN$Warn NUMBER;
BEGIN
-- Création des objets temporaires --
dbms_lob.createtemporary( L$Blob, TRUE ) ;
-- Chargement de l'image dans la colonne BLOB --
If PC$Image is not null Then
L$Bfile := BFILENAME('PHOTO', PC$Image );
dbms_lob.fileopen(L$Bfile, dbms_lob.file_readonly);
dbms_lob.loadblobfromfile(
L$Blob, -- BLOB de destination
L$Bfile, -- Pointeur de fichier en entrée
LN$Len, -- Nombre d'octets à lire
LN$src_off, -- Position source de départ
LN$dst_off); -- Position destination de départ
dbms_lob.fileclose(L$Bfile);
End if ;
-- Enregistrement --
update personnes set stockage_photo= L$Blob where id_personne like '1010%';
-- Libération des objets temporaires --
dbms_lob.freetemporary( L$Blob ) ;
END;
/ |
ca a bien marché lorsque j'ai defini le directory "local" , une fois j'ai essayé de le faire sur un repertoire distant , ca déconne, et pourtant tous les droits sont attribués a tous le monde , et je peux acceder à la photo = lien correct , vraiment là je seche..
voila l'erreur
1 2 3 4 5
| ORA-22288: Úchec de l'opÚration FILEOPEN sur le fichier ou le LOB
Acc┐refus
ORA-06512: Ó "SYS.DBMS_LOB", ligne 523
ORA-06512: Ó "UNICAMPUSFLAM.INSERT_DOCUMENT2", ligne 20
ORA-06512: Ó ligne 1 |
le script de cration du lien :
CREATE DIRECTORY PHOTO AS '\\VPX\photos';
je suis desolée mais vraiment la ca me depasse..
Partager