IF 6 - length(to_char(:NEW.yzbb)) > 0 and 6 - length(to_char(:NEW.yzbb)) <> 6 THEN
        str_yzbb := lpad(to_char(:NEW.yzbb),6,'0');
    ELSIF 6 - length(to_char(:NEW.yzbb)) = 6 THEN
        str_yzbb := '';
    END IF;
以上代码大体意思是什么啊

解决方案 »

  1.   

    如果 6 减 (yzbb字段新值的长度) > 0 并且 6 减 (yzbb字段新值的长度) 不等于 6
    那么
        给 str_yzbb 赋值 一个六位的字符串,不足6位从左边用0补齐6位(123->000123)
    否则
        如果 6 减 (yzbb字段新值的长度) = 6  (也就是yzbb字段新值为空)
        给 str_yzbb 赋值为空
    结束
        
      

  2.   

    当你INSERT或UPDATE这的表的时候,检查yzbb字段新值。
    如果yzbb字段内容的长度大于6,那就截取yzbb字段的前6个字符;
    如果yzbb字段内容的长度大于6,yzbb字段不变;
    如果yzbb字段内容的长度小于6并且大于0,那就在yzbb字段前补充“0”到6个字符;
    如果yzbb字段内容的长度为0,那就在yzbb字段就是“”;
    For example:
    如果yzbb字段新值为 “123456789” ,就修改为 “123456”
    如果yzbb字段新值为 “456789” ,就不变
    如果yzbb字段新值为 “123” ,就修改为“000123”
    如果yzbb字段新值为 “” ,就不变,还是“”
      

  3.   

    楼主,触发器写的不完整哦!全部贴出来当你INSERT或UPDATE这的表的时候,检查yzbb字段新值。 
    如果yzbb字段内容的长度大于6,那就截取yzbb字段的前6个字符; 
    如果yzbb字段内容的长度大于6,yzbb字段不变; 
    如果yzbb字段内容的长度小于6并且大于0,那就在yzbb字段前补充“0”到6个字符; 
    如果yzbb字段内容的长度为0,那就在yzbb字段就是“”; 
    For   example: 
    如果yzbb字段新值为   “123456789”   ,就修改为   “123456” 
    如果yzbb字段新值为   “456789”   ,就不变 
    如果yzbb字段新值为   “123”   ,就修改为“000123” 
    如果yzbb字段新值为   “”   ,就不变,还是“”