MYSOA_TRI_RY_GB_JBXX

 CREATE OR REPLACE TRIGGER "MYSOA_TRI_RY_GB_JBXX" BEFORE 
INSERT
OR UPDATE OF "YWGL" ON "RY_GB_JBXX" FOR EACH ROW
DECLARE
  C_YWGL CHAR(128);  
  N_PLACE NUMBER;  
  C_TAG CHAR(1);  
  C_YWGLZW CHAR(2) :='11';

BEGIN
IF INSERTING THEN  
   C_YWGL := '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
    N_PLACE := TO_NUMBER(SUBSTR(:NEW.YWGL,1,LENGTH(:NEW.YWGL)-1));
    C_TAG := SUBSTR(:NEW.YWGL,LENGTH(:NEW.YWGL),1);
    C_YWGL := SUBSTR(C_YWGL,1,N_PLACE-1) || C_TAG || SUBSTR(C_YWGL,N_PLACE+1);
    :NEW.YWGL := C_YWGL;
ELSIF UPDATING THEN
   IF :NEW.YWGL = C_YWGLZW THEN  
   C_YWGL := :OLD.YWGL;
      IF LENGTH(C_YWGL) < 128 THEN
         C_YWGL := RPAD(C_YWGL,128,'0');
      END IF;
    N_PLACE := TO_NUMBER(SUBSTR(:NEW.YWGL,1,LENGTH(:NEW.YWGL)-1));
    C_TAG := SUBSTR(:NEW.YWGL,LENGTH(:NEW.YWGL),1);
    C_YWGL := SUBSTR(C_YWGL,1,N_PLACE-1) || C_TAG || SUBSTR(C_YWGL,N_PLACE+1);
    :NEW.YWGL := C_YWGL;
   ELSE
       C_YWGL := :OLD.YWGL;
       IF LENGTH(C_YWGL) < 128 THEN
          C_YWGL := RPAD(C_YWGL,128,'0');
          END IF;
    N_PLACE := TO_NUMBER(SUBSTR(:NEW.YWGL,1,LENGTH(:NEW.YWGL)-1));
    C_TAG := SUBSTR(:NEW.YWGL,LENGTH(:NEW.YWGL),1);
    C_YWGL := SUBSTR(C_YWGL,1,N_PLACE-1) || C_TAG || SUBSTR(C_YWGL,N_PLACE+1);
    :NEW.YWGL := C_YWGL;
    :NEW.RYID :=:OLD.RYID;
    :NEW.SFZMHM := :OLD.SFZMHM;
    :NEW.XM := :OLD.XM;
    :NEW.XB :=:OLD.XB;
    :NEW.MZ :=:OLD.MZ;
    :NEW.CSRQ := :OLD.CSRQ;
    :NEW.SFZMMC :=:OLD.SFZMMC;
    :NEW.JG := :OLD.JG;
    :NEW.XMQP :=:OLD.XMQP;
    :NEW.XMJP:=:OLD.XMJP;
    :NEW.ZHSJC:= :OLD.ZHSJC;
  END IF;
END IF;
EXCEPTION
  WHEN OTHERS THEN
    :NEW.YWGL := :OLD.YWGL;
END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值