您好,我有以下 html 片段,我想在我的程序中通过电子邮件发送。 如何将其放入 UTL_MAIL 的消息属性中。 我应该把它放在某个变量中吗?如果是的话怎么办?
如果有更好的方法,我也很乐意探索。我有以下两个选择。我无法使 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;
最佳答案
UTL_MAIL.send的message
只是一个VARCHAR2参数,它接受一个字符串作为参数。
HTP.P
和 OWA_UTIL.cellsprint
是过程,而不是函数,因此它们不能用于向邮件传递值。它们设计用于基于网络的应用程序,不适用于邮件等其他用途。
如果您愿意,您可以使用 HTF
中的函数,但在您的情况下,您已经编写了 html,因此您也可以将其直接传递给消息:
UTL_MAIL.SEND (
sender => 'xxx@yyy',
recipients => 'abc@xyz',
subject => 'Hi',
MESSAGE => '<HTML>...'
mime_type => 'text/html; charset=us-ascii');
关于sql - UTL_MAIL 消息属性调用 OWA_UTIL.cellsprint 过程 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470518/