create or replace procedure BAS_NUM_UPD  is
 cursor cur is
 select distinct o.oi_b,mpr.pa_ke_i,ltrim(substr(convert_171_to_711(cp.p_t_num),1,7),'0') bs_nbr
    from t_obj o, mat_pa_rel mp, cor_pa cp
    where o.ob_t = 'something'
    and o.oi_b = mp.oi_b
    and mp.pa_ke_i = cp.pa_ke_i;
 l_ba_num_at_i  number(10) := get_attribute_id('Ba  timber');
 flag1 VARCHAR2(10);
 type t1 is table of varchar2(10);
 par_k t1;
 BEGIN
     for x in cur loop
 BEGIN      
   select pa_ke_i into par_k from mat_pa_rel where oi_b=x.oi_b ;
  if par_k.count=null  then  
  insert into cs_val (oi_b, at_i, value, flag, ) values (x.oi_b, l_ba_num_at_i, null, 1);
  end if;
  select flag into flag1 from cs_val where at_i = l_ba_num_at_i  and oi_b = x.oi_b
    and value = x.bs_nbr;
  EXCEPTION 
    when NO_DATA_FOUND THEN
      insert into cs_val (oi_b, at_i, value, flag, )
          values (x.oi_b, l_ba_num_at_i, x.bs_nbr, 1);
    flag1 :='Nothing';
    when OTHERS 
then
       raise_application_error(-20011,'Unknown Exception in PROCEDURE');
END;
end loop;
end BAS_NUM_UPD;
错误:PLS-00642:SQL 语句中不允许本地集合类型