should_finish_time 中有一个时间,如果当系统时间等于should_finish_time 中的时间,s_c_time 中的值等于空,scope中的值为1或2 的时候,把系统时间写入s_c_time 中,如果当系统时间等于should_finish_time 中的时间,s_c_time 中的值等于空,scope中的值为3 的时间,把系统时间写入s_c_time 中,并修改另一个表中一个字段的一个值。如果s_c_time 中的值不等于空,就不做任何修改。
谢谢!
谢谢!
scope中的值为3和为1,2时有区别么?
AFTER INSERT
ON Wfes_supervise FOR EACH ROW
DECLARE s_id_tem number;
BEGIN
s_id_tem := 0;
SELECT s_id INTO s_id_tem FROM Wfes_supervise where /*should_finish_time = SYSDATE AND*/ s_c_time is null AND
"scope" IN (1,2);
UPDATE Wfes_supervise SET s_c_time = SYSDATE WHERE s_id = s_id_tem;
COMMIT;
Exception
when Others then
BEGIN
return;
END;
END;
"scope" IN (1,2);
UPDATE Wfes_supervise SET s_c_time = SYSDATE WHERE s_id = s_id_tem;
COMMIT;
这个Update前面不需要判断吗??
Wfes_supervise (督察表),记录督察信息。wfes_project(项目表)记录项目信息。
督察表中should_finish_time(Wfes_supervise字段:应该结束时间、时间类型)的值只有在type(Wfes_supervise字段:督察类型)值为31(延期)的时候才会有,其他督察类型的时候为空。
当should_finish_time里有值得时候(里面的时间一定大于数据插入时的时间),只要系统时间等于这个时间,s_c_time(Wfes_supervise字段:督察结束时间)的值不等于空,scope(Wfes_supervise字段:督察范围)值为1或着2的时候,就把系统时间写入s_c_time中。
当should_finish_time里有值得时候(里面的时间一定大于数据插入时的时间),只要系统时间等于这个时间,s_c_time(Wfes_supervise字段:督察结束时间)的值不等于空,scope(Wfes_supervise字段:督察范围)值为3的时候,就把系统时间写入s_c_time中,并判断wfes_project(项目表)中的p_state(字段:项目状态),如果p_state等于31,就把p_state改为1。
{
if(Wfes_supervise.scope==3 && wfes_project.p_state==31)
{
update wfes_project set p_state=1;
}
update Wfes_supervise set s_c_time=sysdate;
}
就会触发
update Wfes_supervise set s_c_time=sysdate;
如果Wfes_supervise.scope==3 && wfes_project.p_state==31
还会触发
update wfes_project set p_state=1;
您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
http://www.bestdba.cn/match_discussion3.aspx?pointid=449&pointid2=1&pointid3=5&pcount=stc非常感谢您对本次活动的支持!
--------------------------------------------------------------
花花另加100分