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:
NB/ 1- Le paramètre Pc$dir = 'FICHIERS_IN'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 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;
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:
Merci d'avance.Code:
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;