【发布时间】:2019-07-24 21:02:52
【问题描述】:
我有一个程序可以计算 SMS_OUTBOX 表中的行数,如果它的行数超过 1000 则发送电子邮件。我的程序如下:
CREATE OR REPLACE PROCEDURE SEND_EMAIL_ABOUT_PENDING_SMS IS
CHECK_SMS_COUNT NUMBER := 1000;
CURRENT_SMS_COUNT NUMBER;
BEGIN
SELECT COUNT(1) INTO CURRENT_SMS_COUNT FROM SMS_SCHEMA.SMS_OUTBOX;
IF CURRENT_SMS_COUNT >= CHECK_SMS_COUNT THEN
UTL_MAIL.SEND(
sender=>'<SENDER_EMAIL>',
recipients=>'<RECIPIENT_EMAIL>',
subject=>'Pending SMS',
Message=>'Pending SMS count exceeded.'
);
END IF;
END SEND_EMAIL_ABOUT_PENDING_SMS;
/
当我编译上面的代码时,我得到了这个错误。
然后我尝试这行代码在没有过程的情况下执行:
EXEC UTL_MAIL.SEND(
sender=>'<SENDER_EMAIL>',
recipients=>'<RECIPIENT_EMAIL>',
subject=>'Pending SMS',
Message=>'Pending SMS count exceeded.'
);
然后我得到了这个错误:
PLS-00302:必须声明组件“SEND”
我对 Oracle(和 PL/SQL)非常陌生。谁能帮我在Oracle中发送电子邮件以及需要什么配置?
【问题讨论】:
-
有一些设置步骤:oracle-base.com/articles/10g/…
标签: oracle plsql oracle11g oracle10g utl-mail