【发布时间】:2014-09-27 23:05:11
【问题描述】:
我正在开发一种产品,当有人等待服务超过 15 分钟时,我必须向相关人员发送短信。
为此,我编写了一个程序,当Duration 超过15 时,它会监视一个表并将CUST_ID, CUST_CATEGORY, DURATION 存储在一个单独的表中。该表的表结构是:
Some_Table
CUST_ID CUST_CATEGORY DURATION SMS_STATUS
我写了一个触发器:
触发器
create or replace trigger kiosk_sms_trg
after insert on Some_Table
referencing new as new old as old
for each row
BEGIN
SMS_Proc@My_Server; --Procudure that generates SMS
update Some_Table set status = 'Y' where id = (select max(id) id from Some_Table where status = 'N'); --Update Table that SMS has been sent
select 'Y' into :new.status from dual;
END;
但它会产生突变问题。我该如何解决?任何帮助将不胜感激。我正在使用 Oracle 11G。
【问题讨论】:
-
去掉这行
referencing new as new old as old你不用了。 -
我感觉这不对。
SMS_Proc@My_Server;应该更新该表。 -
我认为 OP 在使用触发器之前需要对触发器进行一些阅读
标签: oracle stored-procedures triggers oracle11g