[Forms] Afficher une image stockée en base
je n'arrive pas a afficher une image bmp stocker ma table, sachant que ma colonne dans ma table 'etudiants' est de type blob et j'utilise forms 9i et ma procedure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
PROCEDURE add_blob(p_id NUMBER, p_name VARCHAR2) IS
v_blob BLOB;
v_bfile BFILE;
BEGIN
INSERT INTO etudiants(matricule,photo)
VALUES
(p_id, empty_blob())
returning photo into v_blob;
commit;
v_bfile := bfilename('image','visage.bmp');
dbms_lob.fileopen(v_bfile);
dbms_lob.loadfromfile(v_blob, v_bfile, dbms_lob.getlength(v_bfile));
dbms_lob.fileclose(v_bfile);
END; |
bon lors de l'enregistrement il m'affiche le message suivants:
Citation:
ORA-22285 non-existent directory or file for string operation
malgré que j'ai créée mon repertoire comme ceci avec Sql + :
Code:
1 2 3
|
CREATE directory image AS 'c:\images\';
GRANT READ ON directory image TO users; |
et pour afficher l'image j'ai utilisé la procédure suivante :
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
|
procedure Affiche_Infos_Fichier(PN$Id IN etudiants.matricule%TYPE,p_name VARCHAR2) IS
v_blob blob;
l_amt number default 30;
l_off number default 1;
l_raw raw(4096);
Begin
Select photo
Into v_blob
From etudiants
Where trim(matricule) = trim(PN$Id);
owa_util.mime_header( 'image/bmp' );
begin
loop
dbms_lob.read( v_blob, l_amt, l_off, l_raw );
htp.prn( utl_raw.cast_to_varchar2( l_raw ) );
l_off := l_off+l_amt;
l_amt := 4096;
end loop;
exception
when no_data_found then
NULL;
end;
end; |
[Modération : titre repris par LeoAnderson]
[Modération, Orafrance : Pensez à mentionner le langage dans le titre]