title: Getting an error in sql, when executing code below.How to declare a table type in plsql. Am a beginner . Please suggest
body: <pre><code> 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;
  </code></pre>
  
  <p>error:
  PLS-00642: local collection types not allowed in SQL statements</p>