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;