Dans mon code qui suit je prends des données sur un serveur oracle (situé sur une machine distante) et j'aimerai écrire ces données dans un fichier que je crée sur ma machine locale par FTP via le package UTL_TCP. Le problème c'est que mon fichier n'es pas crée et je comprends pas pourquoi.

le code est le suivant:

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
70
71
72
73
74
75
76
77
78
79
80
81
82
 
DECLARE
 
cursor C_SUIVI_DTM is
 
select MATGSOC, 
       DAT_TRT, 
	   NOM_TABLE, 
	   date_diff(DATDEB_TRT,DATFIN_TRT) as DUREE
FROM SUIVI_DTM                   
WHERE DAT_TRT between add_months(to_date(to_char(sysdate,'YYYYMM'),'YYYYMM'),-1) and LAST_DAY(add_months(to_date(to_char(sysdate,'YYYYMM'),'YYYYMM'),-1));
 
l_conn  UTL_TCP.connection;
	p_host   Varchar2(50):='ICOULIBALY';
	p_port   INTEGER:=21;
	l_result  PLS_INTEGER;
 
	 r_SUIVI_DTM          C_SUIVI_DTM%ROWTYPE;
 
	szTrt                Varchar2(32);
	szFileExport         Varchar2(50);
	ligne                VARCHAR2(100); 
BEGIN
 
  szTrt := 'EXPORT_SUIVI_DTM';
  szFileExport := to_char(add_MONTHS(Sysdate,-1), 'YYYYMM') || '_'||szTrt||'.txt';
  l_conn := UTL_TCP.open_connection(p_host, p_port);
  dbms_output.put_line( 'connection machine'||l_conn);
 
  l_result := UTL_TCP.write_line(l_conn, 'USER ' || 'icoulibaly ');
   dbms_output.put_line( 'connection user'||l_conn);
 
  l_result := UTL_TCP.write_line(l_conn, 'PASS ' ||  'issoufou');
 
 
 
 
 
 
  --l_result := UTL_TCP.write_line(l_conn, 'STOR ' || 'D:/'||szFileExport );
  l_result := UTL_TCP.write_line(l_conn, 'STOR ' || 'fichier' );
 
 
	--monFichier := UTL_FILE.FOPEN ('EXPLOIT','szFileExport', 'a');
 
 
	ligne:='MATRICULE GROUPE ;'||'DTE traitement;'||'NOM de  table;'||'Duree traitement';
 
   -- DBMS_LOB.WRITE(v_clob, l_offset, length(ligne),ligne);
 
     --utl_file.put_line(monFichier, ligne);
	 l_result := UTL_TCP.write_text(l_conn, ligne, LENGTH(ligne));
	 UTL_TCP.flush(l_conn);
 
	open C_SUIVI_DTM;
 
	LOOP
	 fetch C_SUIVI_DTM into r_SUIVI_DTM;
	 EXIT WHEN C_SUIVI_DTM%NOTFOUND;
	 ligne:=null;
	 ligne:=r_SUIVI_DTM.MATGSOC ||';'||r_SUIVI_DTM.DAT_TRT||';'||r_SUIVI_DTM.NOM_TABLE||';'||r_SUIVI_DTM.DUREE;
 
 
	 --utl_file.put_line(monFichier, ligne);
	 l_result := UTL_TCP.write_text(l_conn, ligne, LENGTH(ligne));
	 UTL_TCP.flush(l_conn);
 
	END LOOP;
	close C_SUIVI_DTM;
	--UTL_FILE.FCLOSE (monFichier);
 
	 UTL_TCP.close_connection(l_conn);
	 --dbms_output.put_line( 'aa');
   EXCEPTION
    WHEN UTL_FILE.INVALID_PATH then
    dbms_output.put_line ('Chemin Invalide');
    RAISE;
   WHEN OTHERS then
   dbms_output.put_line (SQLERRM);
      RAISE;
 
   END;