oracle的触发器功能的作用是:当我们定义了一个表的触发器,当这个表发生了DML操作的时候,触发器会自动执行我们定义的语句序列,今天在编译触发器的时候,发生了ORA-04098报错,定位过程希望可以帮助到你
工具/原料
oracle
plsqldeveloper
方法/步骤
1、步骤一:项目上之前定义了一个触发器,当使用业务用户插入数据的时候,正常插入,捂执涡扔使用sys插入时候,报“'Youdon''thaveaccesstomodify墉掠载牿thistable.'”错误,今天使用业务用户插入时候报错ORA-04098,如图
2、步骤二:在plsql上查看,teacher表上确实是有触发器的.使用pls孥恶膈茯ql右键编辑,在触发器上编译时候报错,发现报错,多了一个砖镑苣逢/符号,错误会显示黄色createorreplacetriggertri_teacherbeforeinsertorupdateordeleteonSBF_CXTJ.teacherbeginifuser<>'SBF_CXTJ'thenraise_application_error(-20001,'Youdon''thaveaccesstomodifythistable.');endif;end;/
3、步骤三:删除/,然后再次编译。显示编译成功
4、步骤四:在业务用户下执行,正常插入
5、步骤五:sys用户下执行,报错“Youdon''thaveaccesstomodifythistable”,达到了我们触发器的目的
6、总结:业务遇到的报错和我上面并不相同,但是可以按照我的方法进行排查,有时候,解决了一个错误并不重要,重要的是我们学习到了一种排错方法