2013-05-09 59 views
2

嗨我有以下的html代碼片段,我想通過電子郵件發送我的程序。 如何在UTL_MAIL的消息屬性中添加該消息。 我應該把它放在一些變量,如果是的話如何?UTL_MAIL消息屬性調用OWA_UTIL.cellsprint過程Oracle

如果還有更好的方法,我也很樂意去探索。我有兩個選項below.I無法使MESSAGE屬性工作。

OPTION 1 
    DECLARE 
    BEGIN 
    UTL_MAIL.SEND (
     sender  => '[email protected]', 
     recipients => '[email protected]', 
     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  => '[email protected]', 
      recipients => '[email protected]', 
      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; 

回答

2

UTL_MAIL.send的message只是一個VARCHAR2參數,它需要一個字符串作爲參數。

HTP.POWA_UTIL.cellsprint是程序,而不是函數,所以它們不能用於將值傳遞給郵件。它們設計用於基於Web的應用程序,不適用於其他目的,如郵件。

,如果你願意,你可以使用該功能HTF,但在你的情況下,你已經寫你的HTML,所以你可能也只是直接把它傳遞給消息:

UTL_MAIL.SEND (
     sender  => '[email protected]', 
     recipients => '[email protected]', 
     subject  => 'Hi', 
     MESSAGE  => '<HTML>...' 
     mime_type => 'text/html; charset=us-ascii'); 
+0

非常感謝傑夫回答...欣賞你的時間 – 2013-05-14 14:08:31