Bonjour à tous,

Je vous explique mon problème ; je dois générer dans un fichier texte des données correspondant à des enregistrements de ma base de données. Mon problème réside dans le traitement du cas où l'espace disque est dépassé voici ce qui se passe :

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
declare
 
cursor mes_clients is select * from clients;
out_file TEXT_IO.FILE_TYPE;
 
begin
   out_file     := TEXT_IO.FOPEN('c:\toto','W');
   for w_client in mes_clients loop
      begin
	TEXT_IO.PUT(out_file, RPAD(NVL(w_client.numero_client,' '),15,' ')||                                 
        RPAD(NVL(w_client.nom_client,' '),5,' ')||
        RPAD(nvl(w_client.date_naissance,' '),10,' ')||
        RPAD(NVL(w_client.ville,' '),10,' ');
      exception
      WHEN OTHERS THEN
      pr_erreur('CXCLIENTS',w_num_fic , 'numero_client', n, 'erreur creation');
      end;
   end loop;
end;
Quand l'espace disque est saturé, une dernière ligne est insérée, mais malheureusement, elle n'est pas générée entièrement. Pour les enregistrements suivant, on passe bien dans l'exception.
Ce que j'aurais voulu c'est que dès qu'une ligne ne peux pas être insérée entièrement on passe dans l'exception. Est-ce que quelqu'un aurait une idée ?

Merci d'avance.