DECLARE
type jihe is table of number
not null
index by varchar2(20);
a jihe ;
begin
a('x'):= 1111;
a('y'):= 2222;
a('z'):= 3333;
a('b'):= 4444;
dbms_output.put_line('================');
dbms_output.put_line(a('b'));
dbms_output.put_line(a.prior(2));
dbms_output.put_line(a.next(0));
dbms_output.put_line(a.next(1));
dbms_output.put_line(a.next(2));
dbms_output.put_line(a.next(3));
dbms_output.put_line(a.next(4));
dbms_output.put_line(a.next(10));
end;
/*
刚百度查看学习了下
NEXT(x) 返回在元素x之后及紧挨着它的元素的值,如果该元素是最后一个元素,则返回null。
PRIOR(x) 返回集合中在元素x之前紧挨着它的元素的值,如果该元素是第一个元素,则返回null。
应为你定义的索引不是数组(而是varchar2(20)),所有只能a('x') ,a.prior('x'),a.next('x')
*/
DECLARE
type jihe is table of number --定义存的值为数组
not null
index by varchar2(20); --定义索引为字符串
a jihe ;
begin
a('x'):= 1111;
a('y'):= 2222;
a('z'):= 3333;
a('b'):= 4444;
dbms_output.put_line(a.count);
for i in 1..a.count loop
/*dbms_output.put_line(a(i));*/ --这边索引就不能按数组来,必须按字母类型
dbms_output.put_line(a.count);
end loop;
dbms_output.put_line(' ');
dbms_output.put_line('a.prior('||'''x'''||')='||a.prior('x')); --这边测试看 貌似是按字母的asci排序的
dbms_output.put_line('a.next('||'''x'''||')='||a.next('x'));
end;
/*可以写成 index by binary_integer 用 a.prior(1),a.next(2)查看
*/