如何根据顶点文本字段中输入的内容发送电子邮件。例如,如果我在:p6_supervisor中输入 me@test.com ,我希望将电子邮件发送给该人。
目前,我有一个可以正常工作的预设UTL_MAIL.send。
stocks_w_price_indicators<- stocks2 %>%
group_by(symbol)%>%
tq_mutate(select=close,mutate_fun=RSI) %>%
tq_mutate(select=c(high,low,close,volume),mutate_fun=CMF)
当然,这是出于其他目的,即从触发器向一个收件人发送电子邮件。
下面是“光标”示例
begin
UTL_MAIL.send(sender => 'test@test.com',
recipients => 'test1@test.com',
subject => 'Test,
message => 'Please Note this is a test' );
end;
答案 0 :(得分:0)
它将起作用,没问题。一种简单的方法是
P6_SUPERVISOR
)P6_SUPERVISOR
的值设置为会话状态创建一个调用UTL_MAIL
的进程; P6_SUPERVISOR
项的内容用作RECIPIENTS
参数的源。例如:
UTL_MAIL.send (sender => 'test@test.com',
recipients => :P6_SUPERVISOR,
subject => 'Test message - subject',
MESSAGE => 'Test message - message body');
[编辑:如何循环发送邮件?]
我不确定您创建函数的含义;它仅返回一个电子邮件地址,该电子邮件地址可能属于通过NAME_IN参数传递的名称(但您在游标查询中使用了“测试”名称)。
但是,您指定了该函数返回一个NUMBER,而要选择结果的变量是VARCHAR2。那么,其中哪一项是正确的?
如果您坚持使用某个函数,则不要将其名称括在双引号中,因为您始终必须以这种方式引用它(双引号,正确的大写/小写/混合大小写)。
此外,contract_start_period列的数据类型是什么?如果是DATE,请不要TO_DATE。 SYSDATE也是如此-它是一个始终返回DATE数据类型的函数,因此再次将其转换为日期是错误。
这里是一个示例,该示例使用游标FOR循环(因为它更易于维护)并将邮件发送到该SELECT语句返回的所有supervisoremail地址。
begin
for cur_r in (select supervisoremail
from employee e join supervisors s on s.supervisorname = e.supervisorname1
or s.supervisorname = e.supervisorname2
where contract_start_period < sysdate - 275
and e.employee_name = 'test'
)
loop
utl_mail.send(sender => 'test@test.com',
recipients => cur_r.supervisoremail,
subject => 'Test message - subject',
message => 'Test message - message body');
end loop;
end;