2

こんにちは、次の HTML スニペットがあります。手順で電子メールで送信したいと考えています。それを UTL_MAIL のメッセージ属性に入れるにはどうすればよいですか。それを変数に入れる必要がありますか?

より良い方法があれば、それも検討したいと思います。以下に 2 つのオプションがあります。MESSAGE 属性を機能させることができません。

OPTION 1
   DECLARE
    BEGIN
    UTL_MAIL.SEND (
      sender       => 'xxx@yyy',
      recipients   => 'abc@xyz',
      subject      => 'Hi',
      MESSAGE      => 
      OWA_UTIL.cellsprint (p_theQuery =>'SELECT   a1,b1,c1,d1
                     FROM     test1
                     WHERE    a1 > 1
                     ORDER BY a1',
      p_max_rows=>'10',p_format_numbers => NULL),

      mime_type    => 'text/html; charset=us-ascii');

    END;

    ----------------------------------------------------------------
    OPTION2
    Declare
        Begin
        ....
        ......
        UTL_MAIL.SEND (
          sender       => 'xxx@yyy',
          recipients   => 'abc@xyz',
          subject      => 'Hi',
          MESSAGE      => ***
          mime_type    => 'text/html; charset=us-ascii');
        *** 
        HTP.P ('<HTML>');
         HTP.P ('<HEAD>');
         HTP.P ('<TITLE>Duplicate Records</TITLE>');
         HTP.P ('</HEAD>');
         HTP.P ('<BODY>');
         HTP.P ('<H1>Duplicate Records</H1>');
         HTP.P ('<TABLE BORDER="1 ">');
         HTP.P ('<TR><TH>HIERARCHY</TH><TH>Org Long NAME</TH></TR>');

         FOR idx IN (SELECT   a1,b1,c1,d1
                     FROM     test1
                     WHERE    a1 > 1
                     ORDER BY a1 LOOP
          HTP.P ('<TR>');
          HTP.P ('<TD>' || idx.a1 || '</TD>');
          HTP.P ('<TD>' || idx.b1 || '</TD>');
          HTP.P ('<TD>' || idx.c1 || '</TD>');
          HTP.P ('<TD>' || idx.d1 || '</TD>');
          HTP.P ('</TR>');
         END LOOP;

         HTP.P ('</TABLE>');
         HTP.P ('</BODY>');
         HTP.P ('</HTML>');


        END;
4

1 に答える 1

2

UTL_MAIL.sendmessageは単なる VARCHAR2 パラメータであり、文字列をパラメータとして取ります。

HTP.PおよびOWA_UTIL.cellsprintは関数ではなく手続きであるため、値をメールに渡すために使用することはできません。これらは Web ベースのアプリケーションで使用するように設計されており、メールなどの他の目的には適していません。

必要に応じて関数を使用することもできますHTFが、あなたの場合は既に html を作成しているので、メッセージに直接渡すこともできます。

UTL_MAIL.SEND (
      sender       => 'xxx@yyy',
      recipients   => 'abc@xyz',
      subject      => 'Hi',
      MESSAGE      => '<HTML>...'
      mime_type    => 'text/html; charset=us-ascii');
于 2013-05-13T07:16:47.633 に答える