ITPub博客

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

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

原创 Oracle 作者:LuiseDalian 时间:2014-03-13 14:33:40 0 删除 编辑

COUNT方法

返回集合中元素的个数,不计算被DELETE的元素。

1)可变数组的COUNT

COUNT始终 = LAST,如果使用extendtrim增加或减小可变数组,则count随之改变。

DECLARE

    TYPE NumList IS VARRAY(10) OF INTEGER;

    n NumList := NumList(1, 3, 5, 7);

 

    PROCEDURE print_count_and_last (heading VARCHAR2) IS

    BEGIN

        DBMS_OUTPUT.PUT_LINE(heading);

        DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');

        DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);

    END  print_count_and_last;

BEGIN

   

    print_count_and_last('初始');

 

    n.EXTEND(3);

    print_count_and_last('扩展了3个元素后');

 

    n.TRIM(5);

    print_count_and_last('trim5个元素后');

END;

 

2)嵌套表的COUNT

嵌套表的count = last,除了当在嵌套表中间删除元素外,此时count < last

DECLARE

    TYPE NumList IS TABLE OF INTEGER;

    n NumList := NumList(1, 3, 5, 7);

    PROCEDURE print_count_and_last(heading VARCHAR2) IS

    BEGIN

        DBMS_OUTPUT.PUT(heading);

        DBMS_OUTPUT.PUT('n.COUNT = ' || n.COUNT || ', ');

        DBMS_OUTPUT.PUT_LINE('n.LAST = ' || n.LAST);

    END  print_count_and_last;

BEGIN

    print_count_and_last('初始');

    n.DELETE(3);

    print_count_and_last('删除第3个元素后');

    n.EXTEND(2);

    print_count_and_last('扩展2个空元素后');

    FOR i IN 1..8 LOOP

        IF n.EXISTS(i) THEN

            IF n(i) IS NOT NULL THEN

                DBMS_OUTPUT.PUT_LINE('n(' || i || ') = ' || n(i));

            ELSE

                DBMS_OUTPUT.PUT_LINE('n(' || i || ') = NULL');

            END IF;

        ELSE

            DBMS_OUTPUT.PUT_LINE('n(' || i || ') 不存在');

    END IF;

  END LOOP;

END;

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

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

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5677113