Bonjour,
Machine: Windows XP - Oracle9i Enterprise Edition Release 9.0.1.1.1

J'ai une procédure oracle qui permet de lire un fichier.
Voici le code:
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
CREATE OR REPLACE Function Ouvrir_Fichier(Pc$dir         In Varchar2,
                                          Pc$nom_Fichier In Varchar2,
                                          p_Mode_Ouv     In Varchar2)
  Return Utl_File.File_Type Is
  Fichier Utl_File.File_Type;
  Lc$msg  Varchar2(256);
Begin
  Fichier := Utl_File.Fopen(Pc$dir, Pc$nom_Fichier, Upper(p_Mode_Ouv));
 
  If Not Utl_File.Is_Open(Fichier) Then
    Lc$msg := 'Erreur ouverture du fichier (' || Pc$dir || ') ' || Pc$nom_Fichier;
    Raise_Application_Error(-20100, Lc$msg);
  End If;
 
  Return(Fichier);
 
Exception
  When Utl_File.Invalid_Path Then
    Lc$msg := Pc$dir || Pc$nom_Fichier || ' : ' || 'File location is invalid.';
    Raise_Application_Error(-20070, Lc$msg);
When Others Then
    Lc$msg := 'Erreur : ' || To_Char(Sqlcode) || ' sur ouverture du fichier (' || Pc$dir || ') ' ||
              Pc$nom_Fichier;
    Raise_Application_Error(-20070, Lc$msg);
end;
NB/ 1- Le paramètre Pc$dir = 'FICHIERS_IN'
2- 'FICHIERS_IN' est un repertoire logique au sein de la base, cette valeur se réfère à un repertoire 'c:\seif\' sous le serveur (create directory fichiers_in as 'c:\seif\')
3- L'utilisateur oracle contenant la procédure a le privilège READ pour ce repertoire (grant READ on directory fichiers_in to public)
4- Le paramètre Pc$nom_Fichier = '1.txt' qui se trouve sous le repertoire 'c:\seif\'
Problème: A chaque appelle de cette procédure, l'exception Utl_File.Invalid_Path se déclenche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
declare
v_File_Handle Utl_File.File_Type;
begin
v_File_Handle := Ouvrir_Fichier('FICHIERS_IN', '1.txt', 'R');
end;
Merci d'avance.