utl_file est un package oracle permettant de créer un fichier,
Pour info la procédure UTL_FIL.FOPEN permet d’ouvrir un fichier de 3 façon différente
« R » le fichier est ouvert en lecture (Read)
« W » le fichier est ouvert en écriture (Write)
« A » le fichier est ouvert en ajout (Append)
SET TERMOUT ON
SET serveroutput ON
SET serveroutput ON SIZE 100000
DECLARE
CURSOR C_donnees IS
SELECT col1, col2, col3
FROM table1;
w_sysdate varchar2(20);
w_repertoire varchar2(64);
w_fichier varchar2(80);
l_fichier_log utl_file.file_type;
BEGIN
-- INITIALISATION DES VARIABLES ---
-----------------------------------
SELECT To_Char(SysDate, 'YYYYMMDD_HH24MISS') DATEJOUR INTO w_sysdate FROM Dual;
w_repertoire := '\\rep1';
w_fichier := 'extraction_'||w_sysdate||'.csv';
-- ouverture du ficher ---
dbms_output.put_line('Début de la boucle');
l_fichier_log := utl_file.fopen( w_repertoire, w_fichier, 'A');
-- PARCOUR LE SELECT ---
-------------------------------------
FOR r_donnees IN c_donnees
LOOP
-- ecriture des lignes du select dans le fichier
utl_file.put_line(l_fichier_log, r_donnees.col1 || ';' || r_donnees.col2 || ';' || r_donnees.col3 );
END LOOP;
--------- fermeture des fichiers et fin ----------
UTL_FILE.fclose_all;
dbms_output.put_line('FIN du script');
END; -- fin de la procédure
/
SET serveroutput ON
SET serveroutput ON SIZE 100000
DECLARE
CURSOR C_donnees IS
SELECT col1, col2, col3
FROM table1;
w_sysdate varchar2(20);
w_repertoire varchar2(64);
w_fichier varchar2(80);
l_fichier_log utl_file.file_type;
BEGIN
-- INITIALISATION DES VARIABLES ---
-----------------------------------
SELECT To_Char(SysDate, 'YYYYMMDD_HH24MISS') DATEJOUR INTO w_sysdate FROM Dual;
w_repertoire := '\\rep1';
w_fichier := 'extraction_'||w_sysdate||'.csv';
-- ouverture du ficher ---
dbms_output.put_line('Début de la boucle');
l_fichier_log := utl_file.fopen( w_repertoire, w_fichier, 'A');
-- PARCOUR LE SELECT ---
-------------------------------------
FOR r_donnees IN c_donnees
LOOP
-- ecriture des lignes du select dans le fichier
utl_file.put_line(l_fichier_log, r_donnees.col1 || ';' || r_donnees.col2 || ';' || r_donnees.col3 );
END LOOP;
--------- fermeture des fichiers et fin ----------
UTL_FILE.fclose_all;
dbms_output.put_line('FIN du script');
END; -- fin de la procédure
/