| 12
 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
 41
 42
 43
 
 | create directory logodir as 'd:\logodir';
grant read on directory logodir to public ;
-------------------------------
select * from all_directories;
------------------------------------
create table logosupport
(
idlogosupport number, 
imagelogo blob, 
nom varchar2(240)
);
-------------------------------
create or replace
procedure load_file (
pdname number,
psname varchar2,
pfname varchar2) is
src_file bfile;
dst_file blob;
lgh_file binary_integer;
begin
src_file := bfilename('LOGODIR', pfname); 
insert into logosupport
(idlogosupport, imagelogo, nom)
values
(pdname, empty_blob(), pfname)
returning imagelogo into dst_file;
dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
lgh_file := dbms_lob.getlength(src_file);
dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
dbms_lob.fileclose(src_file);
end load_file;
/
---------------------------------------------------------------
execute load_file(1, 'd:/logodir/1.jpg', '1.jpg')
 
SQL> execute load_file(1, 'd:/logodir/1.jpg', '1.jpg'); 
 
Procédure PL/SQL terminée avec succès.
 
SQL> select * from logosupport; 
SP2-0678: La colonne ou le type d'attribut ne peuvent être affichés par SQL*Plus
SQL> |