我想把select a from table;中查出来的所有a的值赋给一个数组,比如a_array
这个该怎么写?直接into怎么不行呢.

解决方案 »

  1.   

    声明一个record类型: 里面只有一个a ,类型为a%type;在声明数组,数组的成员类型是上面的record类型;然后再select into~ (更好的performance可以用select bulk collect into)
      

  2.   

    声明类型
    type xxxx is table of (这里可以是一个record类型)index by BINARY_INTEGER
      

  3.   

    用游标逐个附值decalre
    i number := 1
    begin
     for vi in (select  a from table ) loop
       a_array(i) := vi.a;
       i := i + 1;
    end loop;
    end
      

  4.   

    TYPE R_ARRAY IS RECORD(IDX NUMBER );
    TYPE T_ARRAY IS TABLE OF R_ARRAY ;--INDEX BY varchar2(32);
    A_ARRAY T_ARRAY;
    i number;
    BEGIN
    --加入游标 循环赋值
    A_ARRAY(i).idx:= ??;
      

  5.   

    支持   czbbbs(强弩)   的写法
      

  6.   

    新找的方法:
    =========================
    --定义类型
    TYPE orders_type IS TABLE OF all_orders%ROWTYPE;--定义变量
    all_order orders_type;--赋值 
    SELECT * BULK COLLECT INTO all_order FROM  all_orders;--使用
    FOR i IN all_order.FIRST .. all_order.LAST LOOP
    .......
    END LOOP: