NC客商bd_custbank不可修改账号、名称但可修改默认银行并更新分子公司trigger

本文探讨了在数据库中更新客户银行信息时的验证逻辑,确保数据一致性,并防止非授权修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create or replace trigger S_UPDATE_CUSTBANK
  before  update on  bd_custbank
  for each row
declare
  -- local variables here
   pk_bas char(20);

  cursor basjob(id char) is
    select pk_custbank
      from ncv5.bd_custbank /*目标数据库表*/
     where pk_custbank = id
       and nvl(dr, 0) = 0;
begin
   /*判断数据是否在目标数据库存在*/
  open basjob(:new.pk_custbank);

  loop

    fetch basjob
      into pk_bas;

    exit when basjob%notfound;

  end loop;
  close basjob;
  /******************************/

  if pk_bas is not null then
   if 
    :new.account<>:old.account or
    :new.accname<>:old.accname or
    :new.memo<>:old.memo then
  raise_application_error(-20001, '请点击客商开户银行修改,此处不可修改!');
  else
     begin
      update ncv5.bd_custbank /*目标数据库表*/
         set pk_custbank = :new.pk_custbank,
             pk_cubasdoc = :new.pk_cubasdoc,
             accname     = :new.accname,
             account     = :new.account,
             accaddr     = :new.accaddr,
             defflag     = :new.defflag,
             memo        = :new.memo,
             pk_accbank  = :new.pk_accbank,
             pk_corp     = :new.pk_corp,
             pk_currtype = :new.pk_currtype,
             ts          = :new.ts,
             dr          = :new.dr
       where pk_custbank = :new.pk_custbank;
    end;

  end if;
    end if;
end S_UPDATE_CUSTBANK;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值