【发布时间】:2012-05-21 08:11:20
【问题描述】:
超市有很多产品。当其中一种产品的数量为零时,需要向经理发送一封自动电子邮件,表明该产品缺货。
我已经完成了电子邮件部分(通过 SQL Developer 发送电子邮件)。现在我需要设置一个循环来跟踪产品的数量。这个循环怎么叫? .
APC?我试过了。但它不适合我
create or replace
procedure check_stock_qty
begin
for r in ( select product_name,product_id from super_market
where pro_qty = 0 )
loop
UTL_MAIL.send(sender => 'blabla@me.com',
recipients => 'blabla@me.com',
subject => 'Test Mail',
message => ( r.product_name ),
mime_type => 'text; charset=us-ascii');
end loop;
end;
------------------------
BEGIN
dbms_scheduler.create_job (job_name => 'stock check',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN check_stock_qty; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'freq=minutely; interval=5; bysecond=0;',
end_date => NULL,
enabled => TRUE,
END;
程序编译,但是win运行它。它给出了一个错误“所选程序处于无效运行状态。重新编译程序并重试”
【问题讨论】:
-
您是否打算每五分钟为每个缺货的产品发送一封电子邮件?我认为最好建立一个缺货产品清单并将其发送出去。您可能还想存储最近通知的列表,这样您就不会每五分钟就同一项目进行通知。
标签: oracle loops plsql oracle11g