希望创建一个trigger,只允许在星期一到星期五的9am-5pm修改stuendt table,有熟悉这方面的,帮助一下,谢谢!!

解决方案 »

  1.   

    create or replace trigger [trigger名]
    before delete or insert or update on [table名] 
    declare
        currentDay varchar2(100);
        currentTime varchar2(100);
        INVALID_TIME exception;
    begin
        -- 这句取出当前时间的星期几, 完整时间, 和日期部分;
        select to_char(sysdate,'day'), to_char(sysdate, 'hh24:mi:ss')
            into currentDay, currentTime from dual;    -- 判断currentDay是不是星期一到星期五
        if currentDay<>'....' or .....  then 
            raise INVALID_TIME;   -- 如果不是星期一到五, 则返回exception;    -- 判断时间是否在9:00 ~ 17:00
        if currentTime>'17:00:00' or currentTime<'09:00:00'
            raise INVALID_TIME;   -- 如果不是9:00~17:00, 则返回exception;    -- 这里开始, 说明时间符合条件:
        .....   -- 任何你还想做的事~ 空着也行
    end;