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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| CREATE OR REPLACE PROCEDURE test
IS
V_Repertoire Varchar2(50) default 'C:\oracle\ora92\sqlplus\admin' ; -- Nom du directory de sortie
V_Fichier Varchar2(50) default 'glogin1.sql'; -- Nom du fichier de sortie
Pointeur_Fichier UTL_FILE.FILE_TYPE ; -- Nom du pointeur de fichier de sortie
V_Msg_err Varchar2(1000) default 'Aucune donnée déchargée' ;-- Msg pour ERREUR
V_Ligne Varchar2(50) default 'testtesttest' ;
--#####################################################################################################
-- Ouverture d'un fichier d'extraction --
--#####################################################################################################
FUNCTION Ouvrir_fichier
(
P_Dir in Varchar2,
P_Nom_Fichier in Varchar2
) RETURN UTL_FILE.FILE_TYPE
IS
Fichier UTL_FILE.FILE_TYPE ;
V_Msg Varchar2(256);
Begin
BEGIN
UTL_FILE.FCLOSE( Pointeur_Fichier ) ;
Fichier := UTL_FILE.FOPEN( P_Dir, P_Nom_Fichier, 'W', 3000 ) ;-- utl_file.fopen
('c:\fichiers\out\in','export.csv','W',1000);
If not UTL_FILE.IS_OPEN( Fichier ) Then
V_Msg := 'Erreur ouverture du fichier (' || P_Dir || ') ' || P_Nom_Fichier ;
RAISE_APPLICATION_ERROR( -20100, V_Msg ) ;
End if ;
Return( Fichier ) ;
Exception
When UTL_FILE.INVALID_PATH Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Chemin de fichier Invalide.';
When UTL_FILE.INVALID_MODE Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Parametre du mode de creation du fichier invalide.';
When UTL_FILE.INVALID_FILEHANDLE Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'handle du File handle is invalid.';
When UTL_FILE.INVALID_OPERATION Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Impossible de créer le fichier ou chemin introuvable .';
When UTL_FILE.READ_ERROR Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Error system apparu durant l''operation de lecture .';
When UTL_FILE.WRITE_ERROR Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Error system apparu durant l''operation de l''écriture.';
When UTL_FILE.INTERNAL_ERROR then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Error PL/SQL inconnu';
When UTL_FILE.INVALID_MAXLINESIZE Then
V_Msg_err := P_Dir || P_Nom_Fichier || ' : ' || 'Valeur MAX_LINESIZE value pour FOPEN() invalid;'
|| ' elle doit etre entre 1 to 32767.';
-----------------------------------------------------------------
When others Then
V_Msg_err := 'Erreur : ' || To_char( SQLCODE ) || ' sur creation du fichier ('
|| P_Dir || ') ' || P_Nom_Fichier ;
END;
Return( null ) ;
End Ouvrir_fichier ;
--#####################################################################################################
-- FIN Ouverture d'un fichier d'extraction --
--#####################################################################################################
begin
-- Ouverture/Creation du fichier
Pointeur_Fichier := Ouvrir_fichier( V_Repertoire, V_Fichier ) ;
--si fichier valide
if Pointeur_Fichier .id is not null then
UTL_FILE.PUT_LINE( Pointeur_Fichier , V_Ligne ) ;-- Ecriture ligne entetes
UTL_FILE.FCLOSE( Pointeur_Fichier ) ;-- Fermeture fichier --
end if;
end;
/ |
Partager