Oracle触发器问题,大神们围观吧

时间:2021-11-09 05:01:33
create or replace TRIGGER last_modify_trigger
after update on FROM_PERSON_QUERY
for each ROW
begin 
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
END


上面是我写的触发器语句,但是抱如下错误:
[SQL]create or replace TRIGGER last_modify_trigger
after update on FROM_PERSON_QUERY
for each ROW
begin 
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
END
[Err] ORA-24344: 成功, 但出现编译错误


使用show error查看,并没有看到更多的提示信息

大神们给看看这个是咋回事儿呀!

6 个解决方案

#1


看语句没有问题,把这个表贴出来看看

#2


引用 1 楼 shixitong 的回复:
看语句没有问题,把这个表贴出来看看

Oracle触发器问题,大神们围观吧

#3


Oracle触发器问题,大神们围观吧

#4


我看LZ的意思,是不是要把当前时间给 lastmodify 这列?



1. 用前触发,不用后触发
after update on FROM_PERSON_QUERY
改成 
before 

2.直接给 new.colsname 新值就可以了
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
改成
:new.lastmodify = sysdate ; 

#5


引用 4 楼 wmxcn2000 的回复:
我看LZ的意思,是不是要把当前时间给 lastmodify 这列?



1. 用前触发,不用后触发
after update on FROM_PERSON_QUERY
改成 
before 

2.直接给 new.colsname 新值就可以了
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
改成
:new.lastmodify = sysdate ; 


现在主要的不是这个问题,问题是语法报错了,说是成功,但是编译错误

#6


说成功,说的是成功的创建了这个TR,编译不过是肯定的。

#1


看语句没有问题,把这个表贴出来看看

#2


引用 1 楼 shixitong 的回复:
看语句没有问题,把这个表贴出来看看

Oracle触发器问题,大神们围观吧

#3


Oracle触发器问题,大神们围观吧

#4


我看LZ的意思,是不是要把当前时间给 lastmodify 这列?



1. 用前触发,不用后触发
after update on FROM_PERSON_QUERY
改成 
before 

2.直接给 new.colsname 新值就可以了
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
改成
:new.lastmodify = sysdate ; 

#5


引用 4 楼 wmxcn2000 的回复:
我看LZ的意思,是不是要把当前时间给 lastmodify 这列?



1. 用前触发,不用后触发
after update on FROM_PERSON_QUERY
改成 
before 

2.直接给 new.colsname 新值就可以了
update FROM_PERSON_QUERY set :new.LASTMODIFY = SYSDATE where :new.ID_CARD=:old.ID_CARD
改成
:new.lastmodify = sysdate ; 


现在主要的不是这个问题,问题是语法报错了,说是成功,但是编译错误

#6


说成功,说的是成功的创建了这个TR,编译不过是肯定的。