如果是TABLE类型的,可以进行批量INSERT如果是VARRAY 则只能循环赋值

解决方案 »

  1.   

    声明时
    b a:=a(null,null,null,...)--初始化数组
    begin
    for i in 1..10 loop
    select t into b(i) from test table where ...;
    ..
    end loop;
    ...
      

  2.   

    斑竹,你下面这句
    select t into b(i) from test table where ...;不对吧?
      

  3.   

    我简单的试了一下,没发现有什么问题,你认为那个地方不正确,望指正
    SQL> DECLARE
      2    -- Define a VARRAY type.
      3    TYPE t_Numbers IS VARRAY(20) OF NUMBER(3);
      4  
      5    -- Declare a NULL varray.
      6    v_NullList t_Numbers;
      7  
      8    -- This varray has 2 elements.
      9    v_List1 t_Numbers := t_Numbers(1, 2);
     10  
     11    -- This varray has one element, which itself is NULL.
     12    v_List2 t_Numbers := t_Numbers(NULL);
     13  BEGIN
     14  select 111 into v_list1(1) from dual;
     15  DBMS_OUTPUT.PUT_LINE(v_list1(1));
     16    END;
     17  /
    111PL/SQL 过程已成功完成。
      

  4.   

    我是想将一个结果保存下来它的sql如下:
    SELECT DISTINCT R.COMPANYID INTO (着有没有办法将companyid保存下来呢?)
    FROM T_C C, T_R R
    WHERE C.COMPANYID <> R.COMPANYID;
      

  5.   

    吧上面的语句定义成游标就可以了
    cursor cur_name is 
    select distinct R.COMPANYID from T_C C, T_R R
    WHERE C.COMPANYID <> R.COMPANYID;