problème avec blob et dbms_lob.fileopen(bfile)
bonjour,
s'il vous plait, j'ai réaliser une procédure stockée qui doit insérer dans une table un champ de type blob.
----> Création de la table "livres" :
Code:
1 2 3 4 5 6
|
CREATE TABLE livres (
id number primary key,
fichier varchar2(64),
contenu blob
); |
----> Création du répertoire logique :
Code:
1 2 3
|
CREATE DIRECTORY rep_logic AS 'C:\log_rep';
-- le dossier 'C:\log_rep' existe, et il contient un fichier "demande.txt". |
----> Création de la procédure insérer_livre(id_liv, fichier)
Code:
1 2 3 4 5 6 7 8 9 10 11
|
CREATE OR REPLACE PROCEDURE inserer_livre(id_liv livres.id%TYPE, fichier livres.fichier%TYPE) AS
cont BLOB;
src BFILE := bfilename('rep_logic', fichier);
BEGIN
DBMS_LOB.fileopen(src, DBMS_LOB.file_readonly);
INSERT INTO livres VALUES(id_liv, fichier, empty_blob()) RETURN contenu INTO cont;
DBMS_LOB.loadfromfile(cont, src, DBMS_LOB.getlength(src),1,1);
DBMS_LOB.fileclose(src);
COMMIT;
END inserer_livre; |
la table livres, le répertoire logique et la procédure stockée inserer_livres(id, fichier) sont créer sans aucune erreur.
le problème c'est que lorsque je lance la procédure il m’affiche une erreur :
---->Lancement du procédure :
Code:
1 2 3 4
|
begin
inserer_livre(1,'demande.txt');
end; |
----> erreur obtenu :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Error starting at line 1 in command:
begin
inserer_livre(3,'demande.txt');
end;
Error report:
ORA-22285: non-existent directory or file for FILEOPEN operation
ORA-06512: at "SYS.DBMS_LOB", line 635
ORA-06512: at "SYSTEM.INSERER_LIVRE", line 5
ORA-06512: at line 2
22285. 00000 - "non-existent directory or file for %s operation"
*Cause: Attempted to access a directory that does not exist, or attempted
to access a file in a directory that does not exist.
*Action: Ensure that a system object corresponding to the specified
directory exists in the database dictionary, or
make sure the name is correct. |
Même si que le répertoire existe ainsi que le fichier, je vois que le problème vient du FILEOPEN qui ne localise pas l'emplacement de mon fichier demande.txt.
est ce que vous avez des suggestion pour moi ?
merci d'avance.