スーパーにはたくさんの商品があります。これらの製品の 1 つが数量ゼロになった場合、この製品が在庫切れであることを示す自動メールをマネージャーに送信する必要があります。
私は電子メールの部分を行いました(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;
プロシージャはコンパイルされましたが、それを実行してください。「選択したプログラムは、実行するには無効な状態にあります。プログラムを再コンパイルして、もう一度やり直してください」というエラーが表示されます。