【发布时间】:2011-10-04 13:57:48
【问题描述】:
我对 PL/SQL 有点陌生,在使用我创建的游标时遇到了一些问题。我正在编写一个向特定人发送电子邮件的程序。以下是相关代码:
sql stmt := ' -- All my sql is in here -- ';
open email_cursor for sql stmt;
fetch email_cursor into term, award, desc, id, name, xmdt;
.....
if v_id is not null then
email_adr := schema1.get_email_adr(v_id); --This is partly where problem is.
if v_opt_ltr = 'Y' then --a variable that decides if an email should be sent
UTL_MAIL.SEND (sender => email_from,
recipients => email_adr,
subject => v_email_subject,
mime_type => 'text/html',
message => email_body );
END IF;
END IF;
好的,所以当我运行它时我没有收到任何错误或任何东西,但是由于某种原因,当我为 email_adr 变量运行函数时它失败了,并且没有给我任何东西,反过来也不会发送电子邮件。
另一个问题(因为我是游标新手):如果我运行“stu_email := schema1.get_email_adr(v_id);”行,游标中的 v_id 应该有大约 25 条记录这会给我所有 25 条记录,然后“utl_mail.send”会向所有收件人发送电子邮件吗?
【问题讨论】:
-
您是否检查过UTL_MAIL.SEND 的参数值?您是否尝试过使用硬编码参数发送带有 UTL_MAIL 的邮件?
-
是的,我有,而且效果很好。如果我对所有电子邮件变量(包括收件人)进行硬编码,它就可以正常工作。它只是能够使用该变量 (v_id),并使用它获取所有 25 条记录