我刚接触ORCALE...写了一个比较简单的删除触发器..却报这样的错误..
ora-04098:触发器'GISCAR.X_WRITE_CARINFO_LOG' 无效且未通过重新确认
我写的删除触发器如下:
create or replace trigger x_write_carinfo_log
  after delete
  on X_CAR_CARINFO
  FOR EACH ROW
  BEGIN
  --If inserting then
  --Else if update then
  --Else
  --End if;
   Insert into CAR_INFOUPDATZE(COMPANY_ID,TRACE_TYPE,UPADTE_ID) values (:old.company_id,'0',:old.car_id);
  END哪位高人能指教一下呀...

解决方案 »

  1.   

    create or replace trigger x_write_carinfo_log is
      after delete
      

  2.   

    ???
    加一个is??
    不行....我知道哪里有问题了..就是CAR_INFOUPDATZE第一个字段TRACE_ID是自增...要用序列..可是我才刚学用ORCALE..不知道怎么写....能教一下吗??
    就是怎么创建一个SEQUENCE
      

  3.   

    create or replace trigger X_WRITE_CARINFO_LOG
      after delete or update or insert of car_group,device_id,driver_id,device_logo
      on X_CAR_CARINFO referencing old as old_X_CAR_CARINFO new as new_X_CAR_CARINFO
      FOR EACH ROW  declare
        i number;
      BEGIN
       dbms_output.put_line('正在执行X_WRITE_CARINFO_LOG触发器…………');
       if UPDATING OR DELETING then 
         select car_infordate_sequence.nextval into i from dual;
         insert into car_infoupdate values (i,:old_X_CAR_CARINFO.company_id,'0',:old_X_CAR_CARINFO.device_id);
       elsif INSERTING then
         select car_infordate_sequence.nextval into i from dual;
       insert into car_infoupdate values (i,:new_X_CAR_CARINFO.company_id,'0',:new_X_CAR_CARINFO.device_id);
      end if;
    END X_WRITE_CARINFO_LOG;我是这样写的