SCOTT下的SYS触发器

[复制链接]
查看11 | 回复2 | 2012-1-4 11:58:44 | 显示全部楼层 |阅读模式
在SCOTT用户下创建触发器
CREATE or replace TRIGGER UP_INCOME
AFTER UPDATE ON emp
FOR EACH ROW
BEGIN
INSERT INTO EMP(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(

ld.empno,

ld.ename,

ld.job,

ld.mgr,

ld.hiredate,:new.sal,:new.comm,

ld.deptno);
UPDATE EMP
SET income=(:new.sal+nvl(:new.comm,0))*12;
END UP_INCOME;
查询SCOTT用户下的触发器
SQL>select trigger_name from user_triggers;
TRIGGER_NAME
------------------------------
UP_INCOME
但执行emp操作时显示触发器 'SYS.UP_INCOME' 无效且未通过重新验证
为什么跑到SYS用户下去了?
求解!!!!




回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
本帖最后由 owen00sun 于 2011-11-8 12:34 编辑
values里是old

回复

使用道具 举报

千问 | 2012-1-4 11:58:44 | 显示全部楼层
create table hy1
(h1 number,h2 number);
insert into hy1
select level g1,dbms_random.value(1,10)
from dual
connect by level<=100 ;
commit;

create or replace trigger t_hy1
after update on hy1
for each row
begin
insert into hy1
select
10000+

ld.h1,
:new.h1
from dual ;
end t_hy1;
/
select * from hy1
order by h1
update hy1
set h1=17
where h1=1
你这个即使编译通过也会造成变异表错误,无法实现你想要的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行