如何使用触发器根据条件更新整行?

Posted

技术标签:

【中文标题】如何使用触发器根据条件更新整行?【英文标题】:How do I update an entire row based on a condition using a trigger? 【发布时间】:2011-11-25 08:23:47 【问题描述】:

我想使用触发器根据条件更新整行。我正在尝试这种情况,但它不起作用

create or replace trigger cust_person_merge_view_t
 instead of update on CUST_MDM_PERSON_MERGE
 referencing new as new
 begin
      update mdm_person_tt 
      set :old.row = :new.row;
      where MDM_PARTY_ID =(select mdm_party_id from CUST_MDM_PERSON_MERGE where mdm_entity_id=:old.MDM_ENTITY_ID);
     if ( sql%rowcount = 0 )
       then
         raise_application_error
          ( -20001, 'Error updating the CUST_MDM_PERSON_MERGE view !!!' );
     end if;
 end;

【问题讨论】:

您遇到了什么错误?你的数据库版本是多少? CUST_MDM_PERSON_MERGE 和 mdm_person_tt 是否相同?请在您的问题中提供更多相关信息。 【参考方案1】:

您不能使用 :old 和 :new 引用整行。您必须逐列分配值。

【讨论】:

以上是关于如何使用触发器根据条件更新整行?的主要内容,如果未能解决你的问题,请参考以下文章

Excel中如何根据某一列的值对整行进行颜色填充?

单元格处于活动状态时突出显示整行

Excel中,如何根据某一列的值来修改整行的颜色?

pb datawindow 如何按条件整行变色?

数据库里面如何删除一个行数据?

如何根据列中的某个值为 ag 网格中的整行提供背景颜色?