Bonjour,

Je suis en Oracle 11g et je souhaite faire une procédure qui envoi un mail avec pièce jointe.
J'arrive finalement à envoyer des petits fichiers mais quand le fichier Excel est plus gros je reçois l'erreur ORA06525: Longueur non valide pour les données CHAR ou RAW.

J'ai lu sur quelques articles que la limite de taille est fixée à 32ko. AUriez-vous une idée svp comment je peux envoyer des fichiers sans contrainte de taille ou à la limite avoir une fenetre de 2 ou 3 Mo?

Voici le code de ma procédure:

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
CREATE OR REPLACE procedure COMMUN.send_email_with_attach
 
 
is  
  v_dir          varchar2(100) := 'XML_DIR';  
  v_sender    varchar2(100) := 'globalsi@oc.gov.ma';  
  v_recipients varchar2(200) := 'globalsi@oc.gov.ma';  
  v_cc            varchar2(200) := null;  
  v_sub          varchar2(60) := 'Sujet Attache';  
  v_message  varchar2(2000) := 'Message ';  
 
  fhandle UTL_FILE.file_type;  
  flen NUMBER;  
  bsize NUMBER;  
  ex BOOLEAN;  
  vtextout RAW (32767);  
  filename varchar2(150):= 'Inspection_2019.xls';
begin  
 fhandle := UTL_FILE.fopen(v_dir, filename, 'r');  -- fichier déposé dans le serveur BDD dans le répertoire v_dir
  UTL_FILE.fgetattr(v_dir, filename, ex, flen, bsize);  
  UTL_FILE.get_raw(fhandle, vtextout, flen);  
  UTL_FILE.fCLOSE(fhandle);  
 
 
  UTL_MAIL.send_attach_varchar2 (
    sender       => 'xx@yy',
    recipients   => 'xx@yy',
    cc           => 'xx@yy',
    bcc          => 'xx@yy',
    subject      => 'UTL_MAIL Test',
    message      => 'If you get this message it worked!',
    attachment   => 'The is the contents of the attachment.',
    att_filename => filename
  );
 
 
 
EXCEPTION  
  when others then  
 null;
end;
/