Collection dans corps de message
je transfert mon message depuis le sous forum admin...
J'ai besoin de faire tourner une procédure, qui va régulièrement me donner des nouvelles de ma (mes) base (s), frequemment modifiée(s) par des intervenants sans scrupules (mes collègues ;))
Comme je suis pas une lumière en PL/SQL, j'ai évidemment un problème que je ne comprend pas; j'ai entre autre dans le code un curseur qui me liste une collection de contraintes désactivées, que je place dans un type défini.
Sauf que ce type défini, je ne sais pas le ressortir pour que ma liste s'intègre dans le corps de mon message...
Voilà le code. La variable de mon type s'appelle "mescontraintes", et lorsque j'essaie de l'utiliser, ma procédure plante (ligne 53)
Comment fait-on ??
Code:
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
|
CREATE OR REPLACE PROCEDUREsys_control
IS
-- Procédure controle BASE , envoi par mail--
TYPE tableau_contraintes IS TABLE OF VARCHAR2(150);
jobs81 varchar2(70);
jobs42 varchar2(70);
jobs2 varchar2(70);
corps varchar2(9000);
mescontraintes tableau_contraintes;
objet varchar2(20) := 'controle BD PROD';
mail1 varchar2(40) := '<moi@mapomme.fr>';
de varchar2(40) := '<moi@mapomme.fr>';
Cursor C_con
IS
select constraint_name || '/ ' || table_name "contraintes_desactivees"
from user_constraints where status like 'DISABLED';
BEGIN
open C_con;
fetch C_con bulk collect into mescontraintes;
Close C_con;
select decode(broken,'N','okay' || ' [ ' || next_date || ' ]','planté !!!!!')
--|| what || '(' || job || ')' || ' --> ' || next_date || ' -midi'
into jobs81 from DBA_JOBS where job = 81;
select decode(broken,'N','okay' || ' [ ' || next_date || ' ]','planté !!!!!')
--|| what || '(' || job || ')' || ' --> ' || next_date
into jobs42 from DBA_JOBS where job = 42;
select decode(broken,'N','okay' || ' [ ' || next_date || ' ]','planté !!!!!')
--|| what || '(' || job || ')' || ' --> ' || next_date
into jobs2 from DBA_JOBS where job = 2;
corps := '<?xml version="1.0" encoding="iso-8859-15"?>'
|| '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
|| '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">'
|| '<head>'
|| '</head>'
|| '<body>'
|| sysdate || '<br/>'
|| 'JOBS (N°) : état & prochaine exécution ' || '<br/>'
|| 'DBMS_STATS_GATHER_SCHEMA_STATS(USRIHF) (2) : ' || jobs2 || '<br/>'
|| 'mise à jour des FOREIGN KEYS (42) : ' || jobs42 || '<br/>'
|| 'mise à jour des comptes midi (81) : ' || jobs81 || '<br/>'
|| '<br/>'
-- || 'CONTRAINTES DESACTIVEES ' || mescontraintes || '<br/>'
|| '<br/>'
|| '</body>'
|| '</html>' ;
send_mail_4(de,mail1,objet,corps);
EXCEPTION
WHEN OTHERS
THEN
RAISE;
END sys_control;
/ |