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
| -- Test du package UTL_FILE
--
CREATE OR REPLACE PROCEDURE Test_util_file IS
ref_fichier UTL_FILE.FILE_TYPE;
LC$Ligne Varchar2(32767) ;
LC$Requete Varchar2(10000) ;
TYPE REFCUR1 IS REF CURSOR ;
cur REFCUR1;
BEGIN
ref_fichier := UTL_FILE.FOPEN('c:\julien','test.txt','w');
LC$Requete := 'SELECT * FROM TABLE';
Open cur For LC$Requete ;
Loop
Fetch cur Into LC$Ligne ;
Exit when cur%NOTFOUND ;
-- Ecriture du fichier de sortie --
UTL_FILE.PUT_LINE( ref_fichier, LC$Ligne ) ;
UTL_FILE.PUT( ref_fichier, 'test2');
End loop ;
Close cur ;
UTL_FILE.FFLUSH(ref_fichier);
UTL_FILE.FCLOSE(ref_fichier);
EXCEPTION
-- traitement des erreurs rencontrees
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE ('Pas de donnée trouvée.');
UTL_FILE.FCLOSE(ref_fichier);
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_LINE ('UTL_FILE.INVALID_PATH invalide.');
UTL_FILE.FCLOSE(ref_fichier);
WHEN UTL_FILE.READ_ERROR THEN
DBMS_OUTPUT.PUT_LINE ('UTL_FILE.READ_ERROR invlide.');
UTL_FILE.FCLOSE(ref_fichier);
WHEN UTL_FILE.WRITE_ERROR THEN
DBMS_OUTPUT.PUT_LINE ('UTL_FILE.WRITE_ERROR invalide.');
UTL_FILE.FCLOSE(ref_fichier);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE ('Autre erreur.');
UTL_FILE.FCLOSE(ref_fichier);
END; -- fin de la procedure
-- le signe / execute la procedure sous SQL*Plus
/ |
Partager