Bonjour,

J'aurais besoin de conseils, je souhaiterais envoyer par mail le résultat de ma requête uniquement si mon flag de ma requête est égal à 1.
Je n'arrive pas à savoir où rajouter ma condition, de plus, malheureusement, j'ai une erreur de compilation que je ne comprends pas

Elément Procedure SEND_MAIL compilé

LINE/COL ERROR
--------- -------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/1 PLS-00410: champs en double interdits dans RECORD ou TABLE
Erreurs : consulter le journal du compilateur
Je vous mets mon code:
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
CREATE OR REPLACE PROCEDURE send_mail (v_mail_to        IN VARCHAR2,
                                       v_mail_from      IN VARCHAR2,
                                       v_mail_body      IN VARCHAR2,
									   v_mail_subject   IN VARCHAR2,
                                       v_mail_smtp_host IN VARCHAR2,
                                       v_mail_smtp_port IN NUMBER DEFAULT 25)
IS
v_mail_conn  utl_smtp.connection;
v_mail_from VARCHAR2(255):='toto@ttt.com';
v_mail_to VARCHAR2(255):='toto@ttt.com';
v_mail_subject VARCHAR2(255):='Etat des tablespace';
v_mail_body VARCHAR2(4000) := 'select T1.tablespace_name as "Nom_tablespace",
T1.bytes / 1024 / 1024 as "Espace_utilisé (Mb)",
T2.bytes / 1024 / 1024 as "Espace_libre (Mb)",
T2.largest /1024 /1024 as "Largest (Mb)",
round(((T1.bytes-T2.bytes)/T1.bytes)*100,2) as "Pourcentage_utilisé",
case
when round(((T1.bytes-T2.bytes)/T1.bytes)*100,2) >= 83 
then 1 
else 
0 
end 
flag_envoi_mail
from
(
select tablespace_name,
sum(bytes) as bytes
from dba_data_files
group by tablespace_name
)
T1,
(
select tablespace_name,
sum(bytes) as bytes ,
max(bytes) as largest
from dba_free_space
group by tablespace_name
)
T2
where T1.tablespace_name=T2.tablespace_name
order by ((T1.bytes-T2.bytes)/T1.bytes) desc ;';
BEGIN 
utl_smtp.helo(v_mail_conn, 'domaine.fr');
utl_smtp.mail(v_mail_conn, v_mail_from);
utl_smtp.rcpt(v_mail_conn, v_mail_to);
utl_smtp.open_data(v_mail_conn);
utl_smtp.write_data(v_mail_conn, 'Subject: ' || v_mail_subject || utl_tcp.crlf);
utl_smtp.write_data(v_mail_conn, 'From: ' || v_mail_from || utl_tcp.crlf);
utl_smtp.write_data(v_mail_conn, 'To: ' || v_mail_to || utl_tcp.crlf);
utl_smtp.write_data(v_mail_conn, utl_tcp.crlf);
utl_smtp.write_data(v_mail_conn, v_mail_body || utl_tcp.crlf);
utl_smtp.close_data(v_mail_conn);
utl_smtp.quit(v_mail_conn);
EXCEPTION
WHEN utl_smtp.Transient_ErrorORutl_smtp.Permanent_Error then
raise_application_error(-20000,'Unabletosendmail',TRUE);
END;
/
Vous remerciant par avance de votre aide