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
| spool monfichierspool
prompt Extraction
DECLARE
wobs traitement.obs3%type; -- Observation
wout utl_file.file_type; -- type de fichier genere
wrep_fic varchar2(100) := null; -- repertoire d'ecriture
wnom_fic varchar2(100) := null; -- fichier d'ecriture
wligne varchar2(250);
cursor c_lst is
SELECT 1||
ltrim(to_char(champ1,'000000000000000'))||
nvl(ltrim(to_char(champ2,'000000000000000')),' ')||
[...] ||
rpad(champ48,4000)
FROM
matable;
BEGIN
-- Definition des parametres du fichier
wrep_fic := '/folder';
wnom_fic := 'exp.dat';
wobs := 'Ouverture du fichier.doc';
wout := utl_file.fopen(wrep_fic, wnom_fic, 'w');
wobs := 'Compose Entete';
wligne := 'col1,col2.....';
wobs := 'Ecriture entete dans fichier';
utl_file.put_line(wout,wligne);
for r_lt in c_lst loop
wobs := 'Compose Ligne';
wligne := r_lt.col1||';'||r_lt.col2||';'||....;
wobs := 'Ecriture Ligne';
utl_file.put_line(wout,wligne);
end loop;
wobs := 'Fermeture du fichier';
-- si le fichier est ouvert, on le ferme
if utl_file.is_open(wout) = TRUE then
utl_file.fclose(wout) ;
end if ;
EXCEPTION
when utl_file.invalid_operation then
-- si le fichier est ouvert, on le ferme
if utl_file.is_open(wout) = TRUE then
utl_file.fclose(wout) ;
end if ;
raise_application_error(-20001,'ERREUR1:'|| sqlerrm||wobs);
when utl_file.invalid_filehandle then
-- si le fichier est ouvert, on le ferme
if utl_file.is_open(wout) = TRUE then
utl_file.fclose(wout) ;
end if ;
raise_application_error(-20001,'ERREUR2:'|| sqlerrm||wobs);
when utl_file.write_error then
-- si le fichier est ouvert, on le ferme
if utl_file.is_open(wout) = TRUE then
utl_file.fclose(wout) ;
end if ;
raise_application_error(-20001,'ERREUR3:'|| sqlerrm||wobs);
when others then
-- si le fichier est ouvert, on le ferme
if utl_file.is_open(wout) = TRUE then
utl_file.fclose(wout) ;
end if ;
raise_application_error(-20001,'ERREUR4:'|| sqlerrm||wobs);
END;
/
show err
spool off |
Partager