基于sysdate的触发器

时间:2013-01-01 12:25:35

标签: sql database oracle plsql triggers

我有一张桌子

表架构:

CREATE TABLE CHARGES 
(
    total NUMBER(30),
    admitdate TIMESTAMP(6),
    dischargedate TIMESTAMP(30)
)

触发算法:

if 
{
   dischargedate="null" 
   then total=admitdate-sysdate=difference in days * Total
   Do this every day at 12:00(24 Hr. Format)
}
else
{
    Do Nothing;
}

我的问题是如果系统在凌晨12:00离线该怎么办。此问题不允许触发器运行。

2 个答案:

答案 0 :(得分:1)

要在特定时间运行一段代码,您可以使用作业。触发器仅用于响应表更改。 如果服务器关闭(它几乎不应该),则可以在以后运行该作业。

答案 1 :(得分:0)

如果您可以更改方法并仅存储静态值,那么维护和推理将更容易。并且仅在需要时使用sysdate进行计算,例如在被要求时使用sql输出。