Bonjour à tous,

Je dois impérativement créer un fichier contenant des enregistrements les uns à la suite des autres sans caractère de fin de ligne

Voici la procédure que je teste :

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
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
 
SET LINESIZE 3000
SET SERVEROUTPUT ON
 
 
var dat_deb           VARCHAR2(20)
var dat_fin           VARCHAR2(20)
 
BEGIN
  DECLARE
 
    w_repertoire      prtami.val_pmt %TYPE:='/home/mle/';     
    w_nom_fic         VARCHAR2(100) := 'tmp_' || LOWER(USER) || '_test.log'; 
    w_fic_cre         UTL_FILE.FILE_TYPE;
    w_texte           VARCHAR2(32000) := 'XYZ';
 
  BEGIN
    :dat_deb  := TO_CHAR(SYSDATE,'dd/mm/yyyy-HH24.MI.SS');
 
    w_fic_cre  := UTL_FILE.FOPEN (w_repertoire,w_nom_fic,'w');
 
 
    UTL_FILE.PUT (w_fic_cre ,'Début : ' || :dat_deb);
 
    UTL_FILE.PUT (w_fic_cre ,'-XXXXXXXXXXXXXXXXXXX-');
 
    UTL_FILE.PUT (w_fic_cre ,'YYYYYYYYYYYYYYYYYYYYYY-');
 
    UTL_FILE.PUT (w_fic_cre ,'ZZZZZZZZZZZZZZZZZZZZZZ-');
 
 
    UTL_FILE.PUT (w_fic_cre ,RPAD(w_texte,3000,'V'));
 
    UTL_FILE.PUT (w_fic_cre ,RPAD(w_texte,3000,'D'));
 
    :dat_fin := TO_CHAR(SYSDATE,'dd/mm/yyyy-HH24.MI.SS');  
 
    UTL_FILE.PUT (w_fic_cre ,'Fin : ' || :dat_fin);
 
    UTL_FILE.FCLOSE(w_fic_cre); 
 
   EXCEPTION
 
   -- exceptions levées par les procédures d'IO de UTL_FILE 
 
    WHEN UTL_FILE.INVALID_PATH THEN
      dbms_output.put_line('erreur path');
 
    WHEN UTL_FILE.INVALID_MODE THEN
      dbms_output.put_line('erreur mode');
 
    WHEN UTL_FILE.INVALID_FILEHANDLE THEN
      dbms_output.put_line('erreur mode');
 
    WHEN UTL_FILE.INVALID_OPERATION THEN
      dbms_output.put_line('erreur op');
 
    WHEN UTL_FILE.READ_ERROR THEN
      dbms_output.put_line('erreur read');
 
    WHEN UTL_FILE.WRITE_ERROR THEN
      dbms_output.put_line('erreur write');
 
    WHEN UTL_FILE.INTERNAL_ERROR THEN
      dbms_output.put_line('erreur internal');
 
  END; 
END;
/
Mais lorque je l'exécute l'exception WHEN UTL_FILE.WRITE_ERROR THEN se déclenche => affichage de 'erreur write'

Que dois-je faire pour pouvoir résoudre ce problème ?

Merci d'avance pour vos réponses.