我删除了触发器,再删除表记录也提示这个,很无语先建了一个存储过程,然后是触发器;当删除student表时,删除相关的表的记录create or replace procedure
pd_trig_std(v_sid in varchar2)
is
begin
delete from std_cs where std_cs.sid=v_sid;
end;create or replace trigger trig_student
before delete on student for each row
begin
pd_trig_std(:old.sid);
end;编译通过了,用c#调用的时候出现异常,发现是这个错误
网上搜的很多复制粘贴的东西都没什么用,什么全角空格,大小写,分号什么的都没有
坐等前辈高手们解答,感谢!

解决方案 »

  1.   

    有可能是之前在student表里用了序列创建sid产生的权限问题。
    可是现在记录都删除不了
      

  2.   

    ORA-04098: 触发器 'LLY.TRIG_STD' 无效且未通过重新验证
      

  3.   

    我把表结构也贴出来吧。
    studnet表:
    名称                                      是否为空? 类型
    ----------------------------------------- -------- ----------------
    SID                                       NOT NULL VARCHAR2(14)
    SPWD                                               VARCHAR2(20)
    SNAME                                              VARCHAR2(10)
    SSEX                                               CHAR(2)
    SMAJOR                                             VARCHAR2(20)
    SCLASS                                             VARCHAR2(4)
    SEMAIL                                             VARCHAR2(30)std_cs表:
    名称                                      是否为空? 类型
    ----------------------------------------- -------- -------------
    SID                                       NOT NULL VARCHAR2(14)
    CID                                       NOT NULL VARCHAR2(14)
    SSCORE                                             NUMBER(4,2)
    SISPASS                                            CHAR(4)
      

  4.   

    我把TRIG_STD这个触发器删除问题就解决了,只是不知道这东西哪来的。。
    感谢2楼,结贴!
      

  5.   

    触发器 'LLY.TRIG_STD' 无效且未通过重新验证,触发器无效怎么能执行呢。。呵呵。。