IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

[PLSQL and HTML] Mettre resultat requete dans un tableau HTML


Sujet :

PL/SQL Oracle

  1. #1
    Inscrit
    Inscrit en
    Avril 2004
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 193
    Points : 94
    Points
    94
    Par défaut [PLSQL and HTML] Mettre resultat requete dans un tableau HTML
    Bonjour,

    Je souhaite mettre le résultat d'une requête dans un tableau HTML.
    L'objectif est de pouvoir envoyer à chaque utilisateur un mail comprenant une liste des dossiers dont la durée de communication est épuisée.
    J'ai ce code suivant mais avec la boucle il m'envoie pour chaque dossier un mail. Comment les regrouper dans un seul tableau par utilisateur ?
    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
    DECLARE
     cursor c_send is select numero_logement, arv_usr,to_char(date_retour_prv,'fmdd month yyyy'),arv_adr_mail
    from archives.ARCHIV_USR u join archives.archiv_entrer_sortie es 
    on u.arv_mat=es.CODE_EMPRUNTEUR where date_retour is null and date_retour_prv < sysdate and rownum<3;
    cas$propr varchar2(20);
    cas$usr varchar2(60);
    cas$dateprv varchar2(30);
    cas$adr varchar2(30);
    BEGIN
    OPEN c_send ;
    LOOP
    FETCH c_send INTO cas$propr,cas$usr,cas$dateprv,cas$adr;
    exit when c_send%notfound;
     send_mail(p_to        => 'destinataire@domaine.com',
                p_from      => 'expediteur@domaine.com',
                p_subject   => 'Rappel ',
                p_html_msg  => '<html>
                                <body>
                                <p> Bonjour,</p>
                                <p>La durée de communication de ces dossiers ci après est épuisée.<br> Vous voudrez bien les retourner aux archives</p>
                                <table border collapse>
                                <tr align="center">
                                <th > Dossier</><th> Date</>
                                </tr>
                                <tr>
                                <td>'||cas$propr||'</td><td>'||cas$dateprv||'</td>
                                </tr>
                                </table>
                                <br><br>
                                <p><i>Conservateur des Archives<br>Ma société.</i></p>
                                </body>
                                </html>',
                p_smtp_host => 'mail.masociete.com');
    END LOOP;
    CLOSE c_send;
    END;
    Merci

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il faut construire le corps de ton mail dans la boucle FOR puis envoyer ton mail.
    En passant je te conseille d'utiliser FOR LOOP END LOOP et de ne pas t'embêter avec les ouvertures, affectations et fermetures de curseurs

    Exemple simplifié (attention au dépassement de taille du VARCHAR2)
    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
    DECLARE
    v_corps_mail VARCHAR2(32000);
    i NUMBER;
    BEGIN
    v_corps_mail := '<html>...';
    FOR r IN (SELECT .... FROM ...)
    LOOP
     i := 1; -- Pounr indiquer qu'il y avait au moins une ligne
     v_corps_mail := v_corps_mail ||'<tr><td>'|| r.col1 ....'</tr>';
    END LOOP;
    IF i = 1
    THEN
    send_mail(p_to        => 'destinataire@domaine.com',
                p_from      => 'expediteur@domaine.com',
                p_subject   => 'Rappel ',
                p_html_msg  => v_corps_mail,
              p_smtp_host => 'mail.masociete.com');
    END IF;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Inscrit
    Inscrit en
    Avril 2004
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 193
    Points : 94
    Points
    94
    Par défaut
    merci pour la réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTML] mettre des URLS dans mes pages HTML
    Par reneguenon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 10/06/2009, 00h02
  2. [HTML] Supression de colonnes dans un tableau html
    Par bassemeco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/03/2008, 22h26
  3. [SQL] afficher resultat sql dans un tableau html
    Par digger dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/06/2006, 12h06
  4. Affichage d'un tableau provenant d'une requete dans un tableau HTML
    Par w0lf dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/06/2006, 20h05
  5. [HTML] afficher des courbes dans un tableau html ?
    Par MAJIK_ENIS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/05/2006, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo