在插入触发器后更新查询
Update query in after insert trigger
我想根据 table 'A' 上的插入更新名为 'B' 的 table,两个 table 之间的匹配是 'A' table 列名为 'IDENT' 和 B table
REGION_CODE_MW||MW_ID
(组合)。我使用了以下触发器,但它抛出错误(弹出)'Enter Binds for New'。触发器有什么问题
create or replace
trigger testrigger
after insert
on A
for each row
declare
link_id varchar2(200);
BEGIN
IF(:NEW.IDENT != '') THEN
link_id := :NEW.IDENT;
end if;
UPDATE B
SET IMPL_DSGN ='Yes',
EQUIP_AVAILABLE='Yes'
where REGION_CODE_MW
||MW_ID=link_id;
END;
而不是 IF(:NEW.IDENT != '') THEN
,可以使用 IF(:NEW.IDENT is not null ) THEN
(比较错误)。
此外,update statement
应该在if statement
:
IF( :NEW.IDENT is not null ) THEN
link_id := :NEW.IDENT;
UPDATE B
SET IMPL_DSGN ='Yes',
EQUIP_AVAILABLE='Yes'
WHERE REGION_CODE_MW||MW_ID=link_id;
END IF;
我想根据 table 'A' 上的插入更新名为 'B' 的 table,两个 table 之间的匹配是 'A' table 列名为 'IDENT' 和 B table
REGION_CODE_MW||MW_ID
(组合)。我使用了以下触发器,但它抛出错误(弹出)'Enter Binds for New'。触发器有什么问题
create or replace
trigger testrigger
after insert
on A
for each row
declare
link_id varchar2(200);
BEGIN
IF(:NEW.IDENT != '') THEN
link_id := :NEW.IDENT;
end if;
UPDATE B
SET IMPL_DSGN ='Yes',
EQUIP_AVAILABLE='Yes'
where REGION_CODE_MW
||MW_ID=link_id;
END;
而不是 IF(:NEW.IDENT != '') THEN
,可以使用 IF(:NEW.IDENT is not null ) THEN
(比较错误)。
此外,update statement
应该在if statement
:
IF( :NEW.IDENT is not null ) THEN
link_id := :NEW.IDENT;
UPDATE B
SET IMPL_DSGN ='Yes',
EQUIP_AVAILABLE='Yes'
WHERE REGION_CODE_MW||MW_ID=link_id;
END IF;