慕粉3344523
2016-06-25 17:14
create or replace trigger securitytest
before insert
on test
begin
if to_char(sysdate,'day') in ('saturday','sunday') or
to_number(to_char(sysdate,'hh24')) not between 9 and 18 then
raise_application_error(-200001,'cannot insert in woking time');
end if
end;
test是你自己创建的表吗??oracle提示的错误信息是什么?
百度一下
1,首先你先用这个查一下:select to_char(sysdate,'day') from dual;,看看结果是英文还是汉字,如果是汉字,就把: ('saturday','sunday') 改为: ('星期六','星期日')
2,raise_application_error(-200001,'cannot insert in woking time'); 这里的错误号参数的范围是-20000 到 -20999 你这里的-200001不在这个范围内
还有一个:是-20001,不是-200001
create or replace trigger securitytest
before insert
on test
begin
if to_char(sysdate,'day') in ('saturday','sunday') or
to_number(to_char(sysdate,'hh24')) not between 9 and 18 then
raise_application_error(-200001,'cannot insert in woking time');
end if
end;
我改成上面的方式也不行呀
你的不是汉语星期六和星期日所以没有进if判断
Oracle触发器
36895 学习 · 49 问题
相似问题