SUMSEN

Oracle&Sql爱好者,用友NC管理员

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

写在了银行账户表上面

经常有单位的客商的联行号长度写了16位等低级错误

这里通过    (length(:new.combineaccnum) not in ('5','12'))来控制。

前面写的    (length(:new.combineaccnum) <> 5 or length(:new.combineaccnum) <>12)不知道为什么不行

create or replace trigger C_ACCBANK_SPACE
before insert or update on bd_accbank  
  for each row
declare
  -- local variables here
  
begin 
 if regexp_like(:new.bankacc,'[[:space:]]') or
    regexp_like(:new.combineaccnum,'[[:space:]]') or
    regexp_like(:new.unitname,'[[:space:]]')     
     or
    (length(:new.combineaccnum) not in ('5','12'))
     then
    raise_application_error(-20001,'注意:银行账号、联行号或单位名称中有空格或
    联行号:' ||:new.combineaccnum ||'长度不正确!');    
  
 end if;    
end ;

这样在银行账户表修改的时候

客商表增行的时候因为有了update set 备注=联行号,同样会触发,只不过需要在debug看到

posted on 2014-01-20 12:04  sumsen  阅读(674)  评论(0编辑  收藏  举报