ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Referenc-PL/SQL集合和记录-集合方法-PRIOR和NEXT方法

PLSQL Language Referenc-PL/SQL集合和记录-集合方法-PRIOR和NEXT方法

原创 Oracle 作者: luisedalian 时间:2014-03-13 14:34:46 0 删除 编辑

PRIORNEXT方法

2个方法允许在集合中向前和向后移动,这对于遍历稀疏集合非常有用。

n  PRIOR返回指定索引的前一个索引,如果前面有元素存在,否则返回NULL

n  NEXT返回指定索引的后一个索引,如果后面有元素存在,否则返回NULL

DECLARE

    TYPE nt_type IS TABLE OF NUMBER;

    nt nt_type := nt_type(11, NULL, 22, 33, 44, 55);

 

BEGIN

    nt.DELETE(4);

    DBMS_OUTPUT.PUT_LINE('nt(4) 被删除.');

 

    FOR i IN 1..7 LOOP

        DBMS_OUTPUT.PUT('nt.PRIOR(' || i || ') = '); print(nt.PRIOR(i));

        DBMS_OUTPUT.PUT('nt.NEXT(' || i || ')  = '); print(nt.NEXT(i));

    END LOOP;

END;

 

 

DECLARE

    TYPE NumList IS TABLE OF NUMBER;

    n NumList := NumList(1, 2, NULL, NULL, 5, NULL, 7, 8, 9, NULL);

    idx INTEGER;

BEGIN

    DBMS_OUTPUT.PUT_LINE('firstlast:');

    idx := n.FIRST;

    WHILE idx IS NOT NULL LOOP

        DBMS_OUTPUT.PUT('n(' || idx || ') = ');

        print(n(idx));

        idx := n.NEXT(idx);

    END LOOP;   

    DBMS_OUTPUT.PUT_LINE('--------------');

    DBMS_OUTPUT.PUT_LINE('lastfirst:');

    idx := n.LAST;

    WHILE idx IS NOT NULL LOOP

        DBMS_OUTPUT.PUT('n(' || idx || ') = ');

        print(n(idx));

        idx := n.PRIOR(idx);

    END LOOP;

END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1116070/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5685607