比如说我现在定义了一个表类型的变量
type abc is record
( a   varchar2(100),
  b   varchar2(100),
  c   varchar2(100));type abc_array is table of abc index by binary_integer;然后给该abc_arry赋值。
n  number;
n := 1;for item in (select * from table1)loop
    abc_array(n).a := item.a;
    n := n+ 1;
end loop;
假设abc_array(3).a = 3,我如何通过找到abc_array中a=3的这条记录,并且知道这条记录是第几条记录?

解决方案 »

  1.   

    -- FYI:
    DECLARE
            TYPE TABLETYPE1 IS TABLE OF VARCHAR2(9) INDEX BY BINARY_INTEGER;
            TABLE1 TABLETYPE1;
       BEGIN
            TABLE1(1):='成都市';
            TABLE1(2):='北京市';
            TABLE1(3):='青岛市';
            DBMS_OUTPUT.PUT_LINE('总记录数:'||TO_CHAR(TABLE1.COUNT));
            DBMS_OUTPUT.PUT_LINE('第一条记录:'||TABLE1.FIRST);
            DBMS_OUTPUT.PUT_LINE('最后条记录:'||TABLE1.LAST);
            DBMS_OUTPUT.PUT_LINE('第二条的前一条记录:'||TABLE1.PRIOR(2));
            DBMS_OUTPUT.PUT_LINE('第二条的后一条记录:'||TABLE1.NEXT(2));
        END;