ORA-04098: 触发器 'SYS.INSERT_COURSE' 无效且未通过重新确认

在昨天已创建好的触发器INSERT_COURSE后,我写了一个insert语句进行测试,语句如下insertintoxsxk.x_coursevalues('D1001'... 在昨天已创建好的触发器INSERT_COURSE后,我写了一个insert语句进行测试,语句如下insert into xsxk.x_course values ('D1001','数据库',28,2,'D0001');
执行后就出现错误:ERROR 位于第 1 行:
ORA-04098: 触发器 'SYS.INSERT_COURSE' 无效且未通过重新确认
我已看过触发器的状态是valid。不知错误原因在何处,请高手帮忙,谢谢!
展开
 我来答
来自慧云寺婉若游龙的白玫瑰
2011-09-06 · TA获得超过699个赞
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:286万
展开全部
SELECT trigger_name, status FROM user_triggers WHERE trigger_name='INSERT_COURSE';
看下是不是enabled。
再检查xsxk.course_log这个表是否存在?插入的类型是否有错,是否有读写权限。
更多追问追答
追问
'INSERT_COURSE是enabled,xsxk.course_log这个表存在,xsxk.x_course的表结构如图,我是用dba的权限操作的,也会有权限限制吗?
追答
奇怪,你创建的不是xsxk.Insert_Course么,怎么又变成sys.insert_course了呢。
把你现在的触发器脚本发出来看一下。
或者你用xsxk用户登录,不用sys账户,把xsxk.insert_course drop 掉,触发器名去掉前面的xsxk,就这样:
drop trigger xsxk.insert_course;
create or replace trigger Insert_Course
after insert on x_course
for each row
begin
insert into course_log values (:new.courseid,:new.coursetime,current_timestamp);
end;
我做了一下实验,你那样写确实不行,把前面的xsxk.去掉就ok了~
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式