CREATE OR REPLACE TRIGGER TR_USER2
BEFORE DELETE OR INSERT OR UPDATE ON MYEMP
FOR EACH ROW
BEGIN IF (TO_CHAr(SYSDATE,'DY') IN ('星期六','星期天','星期二') OR
TO_NUMBER(TO_CHAr(SYSDATE,'HH24')) NOT BETWEEN 8 AND 15)
THEN DBMS_OUTPUT.PUT_LINE('现在是非工作时间,请退出!!!');
END IF;
END;
我在一个表上建立的触发器,为什么不管用啊?代码如下:在线等,求解决啊,我用的是ORACLE 10G
答案:1 悬赏:50 手机版
解决时间 2021-02-13 00:49
- 提问者网友:不爱我么
- 2021-02-12 18:38
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-02-12 19:02
呵呵, 是表级触发器, 你的put_line想显示在哪里啊? 没地方显示的
一般表级触发器只能插日志:
把DBMS_OUTPUT.PUT_LINE语句改成 => 插入日志(INS_log('现在是非工作时间,请退出!!!'))
另外写个日志procedure:
CREATE OR REPLACE PROCEDURE INS_log(in_log IN varchar2(50))
IS
PRAGMA AUTONOMOUS_TRANSACTION; --这句一定要有: 自事务处理, 不然会被一起回退BEGIN
insert into log_tab(in_log);
commit;
END;
一般表级触发器只能插日志:
把DBMS_OUTPUT.PUT_LINE语句改成 => 插入日志(INS_log('现在是非工作时间,请退出!!!'))
另外写个日志procedure:
CREATE OR REPLACE PROCEDURE INS_log(in_log IN varchar2(50))
IS
PRAGMA AUTONOMOUS_TRANSACTION; --这句一定要有: 自事务处理, 不然会被一起回退BEGIN
insert into log_tab(in_log);
commit;
END;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯