Bonjour,

J'ai un petit problème que je n'arrive pas à résoudre, quelqu'un pourrait-il m'aider.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
create or replace directory dir_candidatures as 'C:\Recherche_Travail\Candidatures';
/
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
CREATE OR REPLACE PACKAGE verbovsa.GESTION_CANDIDATURES 
as
  procedure insert_candidature(
    ca_ent in number,
    ca_con in number default null,
    ca_dat in date,
    ca_pos in varchar2 default null,
    ca_typ in varchar2 default null,
    ca__let in varchar2 default null,
    ca__cv in varchar2 default null,
    ca__ler in varchar2 default null,
    ca__off in varchar2 default null
    );
end;
/
 
CREATE OR REPLACE PACKAGE BODY verbovsa.GESTION_CANDIDATURES
as
  procedure insert_candidature(
    ca_ent in number,
    ca_con in number default null,
    ca_dat in date,
    ca_pos in varchar2 default null,
    ca_typ in varchar2 default null,
    ca__let in varchar2 default null,
    ca__cv in varchar2 default null,
    ca__ler in varchar2 default null,
    ca__off in varchar2 default null
    )
  is
    ca_num number;
    ca_let blob default null;
    ca_cv blob default null;
    ca_ler blob default null;
    ca_off blob default null;
    filename bfile;
  begin
    select max(canum) into ca_num from candidature;
    ca_num :=  ca_num + 1;
    insert into candidature (canum,caent,cadat,calet)
      values(ca_num,ca_ent,ca_dat,empty_blob()) 
      returning calet into ca_let;
    if ca__let is not null then
      filename:=BFILENAME('dir_candidatures',ca__let);
      dbms_lob.fileopen(filename);
      /*DBMS_LOB.loadblobfromfile(dest_lob=>ca_let, src_lob=>filename, amount=>dbms_lob.getlength(filename));*/
      dbms_lob.fileclose(filename);
    end if;
    commit;
  exception
    when others then
      rollback;
      raise;
  end;
end;
/
 
begin
  gestion_candidatures.insert_candidature(1,null,'20040819',null,null,'AWEurope_19_08_04.jpeg',null,null,null);
end;
/
Et voici le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ORA-22285: non-existent directory or file for FILEOPEN operation
ORA-06512: at "VERBOVSA.GESTION_CANDIDATURES", line 57
ORA-06512: at line 2
Cependant, le fichier 'AWEurope_19_08_04.jpeg' existe bien dans le répertoire 'C:\Recherche_Travail\Candidatures'.
Le directory existe bien et est bien accessible à l'utilisateur. Je ne trouve pas la cause de cette erreur.
J'utilise Oracle 9i

[Balises code ajoutées par Helyos]