为什么我的触发器不能创建成功?

来源:2-1 [Oracle] 触发器应用一

慕粉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;


写回答 关注

6回答

  • inverted_demon
    2016-07-01 14:25:41
    已采纳

    test是你自己创建的表吗??oracle提示的错误信息是什么?

    慕粉3344...

    非常感谢!

    2016-07-10 18:46:38

    共 1 条回复 >

  • qq_可笑又真实的梦想_0
    2016-09-25 14:39:46

    百度一下

  • qq_骑着蜗牛去旅行_03471935
    2016-07-06 15:02:48

    1,首先你先用这个查一下:select  to_char(sysdate,'day') from dual;,看看结果是英文还是汉字,如果是汉字,就把: ('saturday','sunday') 改为: ('星期六','星期日')  

    2,raise_application_error(-200001,'cannot insert in woking time');  这里的错误号参数的范围是-20000 到 -20999  你这里的-200001不在这个范围内

  • inverted_demon
    2016-07-01 14:34:04

    还有一个:是-20001,不是-200001

  • 慕粉3344523
    2016-06-28 21:15:35

    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;

     我改成上面的方式也不行呀

    qq_骑着蜗...

    菇凉,你的错误号错了,范围是-20000(负两万)到-20999(负两万九百九十九),你写的是-200001(负二十万零一),多了个零

    2016-07-08 10:10:06

    共 1 条回复 >

  • 水利万物
    2016-06-27 22:24:09

    你的不是汉语星期六和星期日所以没有进if判断

Oracle触发器

满足条件自动执行的触发器,教程涉及4个案例讲解触发器的应用

36895 学习 · 49 问题

查看课程

相似问题