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
| Declare
-- Noms des fichiers --
LC$Fic_in Varchar2(128) := 'EMP.TXT' ; -- a adapter sur votre configuration
LC$Fic_out Varchar2(128) := 'EMP2.TXT' ; -- a adapter sur votre configuration
-- Noms des répertoires --
LC$Dir_in Varchar(30) := 'FICHIERS_IN'; -- a adapter sur votre configuration
LC$Dir_out Varchar(30) := 'FICHIERS_OUT' ; -- a adapter sur votre configuration
-- Pointeurs de fichier --
LF$FicIN UTL_FILE.FILE_TYPE ;
LF$FicOUT UTL_FILE.FILE_TYPE ;
-- Tampon de travail --
LC$Ligne Varchar2(32767) ;
-- Message --
LC$Msg Varchar2(256) ;
-- Exception --
LE$Fin Exception ;
Begin
-- Ouverture du fichier en entrée
Begin
LF$FicIN := UTL_FILE.FOPEN( LC$Dir_in, LC$Fic_in, 'R', 32764 ) ;
Exception
When OTHERS Then
LC$Msg := SQLERRM || ' [' || LC$Dir_in || '] -> ' || LC$Fic_in;
Raise LE$Fin ;
End ;
-- Ouverture du fichier en sortie
Begin
LF$FicOUT := UTL_FILE.FOPEN( LC$Dir_out, LC$Fic_out, 'W', 32764 ) ;
Exception
When OTHERS Then
LC$Msg := SQLERRM || ' [' || LC$Dir_out || '] -> ' || LC$Fic_out;
Raise LE$Fin ;
End ;
-- Traitement --
Begin
Loop
-- lecture du fichier en entrée --
UTL_FILE.GET_LINE( LF$FicIN, LC$Ligne ) ;
-- écriture du fichier en sortie --
UTL_FILE.PUT_LINE( LF$FicOUT, LC$Ligne ) ;
End loop ;
Exception
When NO_DATA_FOUND Then -- Fin du fichier en entrée
-- Fermeture des fichiers --
UTL_FILE.FCLOSE( LF$FicIN ) ;
UTL_FILE.FCLOSE( LF$FicOUT ) ;
End ;
Exception
When LE$Fin Then
UTL_FILE.FCLOSE_ALL ;
RAISE_APPLICATION_ERROR( -20100, LC$Msg ) ;
End ; |
Partager