我 想在表A 的删除触发器里面 
实现 如果 日期>8 
 就不能删除表数据
并让前台提示错误
为  8日之后不能在删除数据

解决方案 »

  1.   


    create table tab_test
    (
        ddatetime    date
    );insert into tab_test values(sysdate);
    commit;create or replace trigger trg_test
      before delete on tab_test  
      for each row
    declare
      -- local variables here
    begin
        if (to_char(sysdate,'dd') > '08') then
            RAISE_APPLICATION_ERROR(-20000, '8号以后不允许删除数据.');
        end if;
    end trg_test;
    /
    begin
        delete from tab_test;
    exception
        when others then
            dbms_output.put_line(sqlerrm);
    end;
    /ORA-20000: 8号以后不允许删除数据.
    ORA-06512: at "MMSRPT.TRG_TEST", line 5
    ORA-04088: error during execution of trigger 'MMSRPT.TRG_TEST'
      

  2.   

    SQL>create  table  test_trg ( id number,name varchar2(20));
    SQL>create sequence  seq_test;
    SQL>create  or  replace  trigger  bi_test_trg
    Before  insert  or  update  of  id  on  test_trg  for  each  row
    Begin
        If  inserting  then
           Select  seq_test.nextval into :new.id from dual;
        Else 
           Raise_application_error ( -20020,’不允许更新id’值);
    End;
    /