Oracle 建立触发器比较两张表相同字段的数据,再更新另一个字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 建立触发器比较两张表相同字段的数据,再更新另一个字段相关的知识,希望对你有一定的参考价值。
有两张表A与B,A和B有一个相同的字段m,要创建一个触发器实现:每当B插入一条数据后,将B的m字段内数据和A的m字段内数据比较(A的m字段已插入数据),当A.m=B.m时,更新A.STATUS=1.
我的代码是:
create trigger XXX
after insert
on B
for each row when(new.m is not null)
begin
update A set STATUS=1
where A.m=B.m;
end;
/
报错B.m为无效的标识符
请问应该怎么编写代码实现上述功能,请大神们指点指点,非常感谢orz...
for each row when(:new.m is not null)
begin
update A set STATUS=1 where A.m=:NEW.m;
end;
/追问
请问不管我用after还是before insert它都报错说缺失before,after或instead关键字是怎么回事啊TAT?谢谢帮忙!
--这个我编译通过了,你在试试,学Oracle你要努力哦。
CREATE OR REPLACE TRIGGER TESTUSER.XXXSTU
AFTER INSERT
ON NEW_COMM
FOR EACH ROW
WHEN (NEW.UUID IS NOT NULL )
DECLARE
BEGIN
UPDATE STUDENT SET SELLING=1 WHERE UUID=:NEW.UUID;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END XXXSTU;
/ 参考技术A 将B.m换成:new.m
oracle中两张表中的两个字段值的模糊比对
我有A表 字段X 值分别为ab ,vmc, zc , 另有B表 字段Y 值分别为abc, vmc_1, zdc
这个时候我希望X、Y字段对比,以A为基准,找到B表中对应模糊查询的的数据,最后希望得到的一个新的结果集为
X Y
ab abc
vm vm_1
SELECT * FROM A,B WHERE B.Y LIKE '%'||A.X||'%' 参考技术A Select T1.X , T2.Y
From T1,T2
where T1.X like '%' + T2.Y + '%' 参考技术B 用ltrim函数 参考技术C 用like '%%' 撒,就是模糊对比了。
以上是关于Oracle 建立触发器比较两张表相同字段的数据,再更新另一个字段的主要内容,如果未能解决你的问题,请参考以下文章
oracle的数据库中怎么将一张表中数据插入另一张表,两张表都存在