比如说我现在定义了一个表类型的变量
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的这条记录,并且知道这条记录是第几条记录?
------解决方案--------------------
- SQL code
-- 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;