一个表Businfo表示车辆相关信息,想做一个触发器,当修改删除创建时,将数据备份到businfo_log表中。
Create or replace trigger businfo_updateLog
Before insert or update or delete
On businfo
Begin
Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
Values(busno,typeid,lineid,companyid,mpid);
end;怎么报错了?ORA-04098: 触发器 'NJGY.BUSINFO_UPDATELOG' 无效且未通过重新验证
如何解决?
Create or replace trigger businfo_updateLog
Before insert or update or delete
On businfo
Begin
Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
Values(busno,typeid,lineid,companyid,mpid);
end;怎么报错了?ORA-04098: 触发器 'NJGY.BUSINFO_UPDATELOG' 无效且未通过重新验证
如何解决?
解决方案 »
- 100 分 求一sql语句
- oracle 10个安装后在network/admin中只有一个sqlnet.ora,没有listener.ora和tnsnames.ora文件?如何做?谢谢?
- Oracle中的月份连续判断,我的分有限哈!谢谢了!
- ltrim函数不能剔除左侧的0
- 如何形成一个递归路径字段?我需要一个视图
- 请问在数据查询过程中,除了用索引外,还有什么方法可以提高查询速度?小妹十分感谢~~~
- 如何访问两个表空间
- PLSQL程序题?
- system和sys密码
- 求出某月中签到最多一天的次数
- oracle 10g 安装在 windows 2003 32位操作系统上,连接数达到350个就不能再连接的问题,报ora 12518错.
- 查询dm为4401开头的记录是用like '4401%' 还是 substr(dm,0,4)='4401' 效率高?
删除时只有原值
创建时只有新值原值在OLD中
新值在NEW中你这么写当然不对
Before insert
On businfo
Begin
Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
Values(NEW.busno,NEW.typeid,NEW.lineid,NEW.companyid,NEW.mpid);
end; Create or replace trigger businfo_oldLog
Before delete
On businfo
Begin
Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
Values(OLD.busno,OLD.typeid,OLD.lineid,OLD.companyid,OLD.mpid);
end;
Before insert or update
On businfo
Begin
Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
Values(NEW.busno,NEW.typeid,NEW.lineid,NEW.companyid,NEW.mpid);
end;
Line: %26
Text: Values(NEW.busno,NEW.typeid,NEW.lineid,NEW.companyid,NEW.mpid);Error: PL/SQL: SQL Statement ignored
Line: 5
Text: Insert into businfo_log(busno,typeid,lineid,companyid,mpid)
这个你得自己查查此表的字段了,方式应该和你insert into businfo时一样,对对吧