日期:2014-05-17  浏览次数:20879 次

oracle触发器中,为什么在这段代码会报异常呢?。。。。。。。。。。。。。。。
我要问的问题,写在下面的触发器里了,请大家多多指教


create   or   replace   trigger   tg_kfs_res
    after   insert   on   t_kfsample
    for   each   row
declare
      v_asy_time   date;
      v_goodorbad   number;
      v_fe2o3   number;
      v_sio2   number;
      v_al2o3   number;
      v_cao   number;
      v_mgo   number;
      v_na2o   number;
      v_k2o   number;
      v_s   number;
      v_p   number;
      v_as   number;
      v_b   number;
      v_cr   number;
      v_cu   number;
      v_ni   number;
      v_mo   number;
      v_co   number;
      v_v   number;
      v_sn   number;
      v_ba   number;
      v_hg   number;
      v_count   number;
      v_delegate   varchar2(9);   --委托快分码
      v_s_fe2o3   number;
      v_s_sio2   number;
      v_s_al2o3   number;
      v_s_cao   number;
      v_s_mgo   number;
      v_s_na2o   number;
      v_s_k2o   number;
      v_s_s   number;
      v_s_p   number;
      v_s_as   number;
      v_s_b   number;
      v_s_cr   number;
      v_s_cu   number;
      v_s_ni   number;
      v_s_mo   number;
      v_s_co   number;
      v_s_v   number;
      v_s_sn   number;
      v_s_ba   number;
      v_s_hg   number;
      v_s_count   number;
      v_s_asy_time   date;
      v_s_goodorbad   number;
      v_sample_id   varchar2(11);
      v_seq   varchar2(2);
      v_num   number;
      --myexception   exception;
      v_s_id   varchar2(12);


begin
--首先取出t_kfsample表中的记录
        v_s_id   :=:new.fd_sample_id;
--为什么执行下面这个查询语句就跑到exception那个地方去了呢,v_s_id   是有值的,而且根据这个v_s_id也是可以查到数据的   ,但是为什么会跳到异常里了呢?请教大家
        select   count(*)   into   v_count   from   t_kfsample   where   fd_sample_id=v_s_id;
        if(v_count> 0)   then
                    select   fd_analy_time,fd_goodorbad   ,fd_Fe2O3,fd_SiO2,fd_Al2O3,
                    fd_CaO,fd_MgO,fd_Na2O,fd_K2O,fd_S,fd_P,fd_As,fd_B,fd_Cr,
                    fd_Cu,fd_Ni,fd_Mo,fd_Co,fd_V,f