当前位置: 代码迷 >> Oracle开发 >> 怎么定位到表类型变量中的某一条记录
  详细解决方案

怎么定位到表类型变量中的某一条记录

热度:57   发布时间:2016-04-24 07:36:29.0
如何定位到表类型变量中的某一条记录?
比如说我现在定义了一个表类型的变量
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;
  相关解决方案