Bonjour
J'utilise cette fonction:
pour tracer des actions dans un logiciel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 CREATE OR REPLACE procedure journal (texte in varchar2) is frj utl_file.file_type; -- Fichier de rejet Directory varchar(128) := '\\spi-bases\journal'; Fichier_journal varchar(32) ;--:='Trace.dat' ; --JPS chaine varchar2(200); v_base varchar(30); v_currentuser varchar(30); v_osuser varchar(30); v_sessionuser varchar(30); begin select sys_context('USERENV','DB_NAME') into v_base from dual; select sys_context('USERENV','CURRENT_USER') into v_currentuser from dual; select sys_context('USERENV','OS_USER') into v_osuser from dual; select sys_context('USERENV','SESSION_USER') into v_sessionuser from dual; fichier_journal :=v_osuser || TO_CHAR(SYSDATE,'YYYYMMDD') ||'.txt'; frj := utl_file.fopen(Directory, Fichier_journal, 'A'); utl_file.put_line(frj,TO_CHAR(SYSDATE,'YYYY/MM/DD-HH:MI:SS')||';'||v_base||';'||v_osuser||';'||v_sessionuser||';'|| texte,true); end journal; /
Le pb est que le fichier est ouvert la première fois puis FOPEN génère une erreur, et au bout de 50 traces, le programme se plante.
Comment annuler cette erreur "fichier déjà ouvert" sur FOPEN ?
je suis perdu dans les EXCEPTION.
merci
Simon
Partager