더북(TheBook)

⑤ COUNT와 LIMIT 메소드

COUNT는 컬렉션의 요소 개수를 반환하는 메소드다. VARRAY는 요소 일부를, 즉 중간에 있는 요소를 삭제할 수 없기 때문에 COUNT와 LAST 메소드의 반환 값이 같다.

LIMIT 메소드는 해당 컬렉션이 가질 수 있는 요소의 최대 수를 반환하는데, 컬렉션이 요소의 최대 수를 가질 수 없다면 NULL을 반환한다. 3가지 컬렉션 타입 중 최대치를 명시할 수 있는 것은 VARRAY 뿐이므로, 나머지 연관 배열과 중첩 테이블의 경우 반환 값은 항상 NULL이다.

입력

    DECLARE

      TYPE nt_typ IS TABLE OF VARCHAR2(10);      -- 중첩테이블 선언
      TYPE va_type IS VARRAY(5) OF VARCHAR2(10); -- VARRAY 선언

      -- 변수 선언
      vnt_test nt_typ;
      vva_test va_type;
    BEGIN
      -- 생성자를 사용해 값 할당
      vnt_test := nt_typ('FIRST', 'SECOND', 'THIRD', 'FOURTH'); -- 중첩테이블
      vva_test := va_type('첫번째', '두번째', '세번째', '네번째'); -- VARRAY

      DBMS_OUTPUT.PUT_LINE('VARRAY COUNT: ' || vva_test.COUNT);
      DBMS_OUTPUT.PUT_LINE('중첩테이블 COUNT: ' || vnt_test.COUNT);

      DBMS_OUTPUT.PUT_LINE('VARRAY LIMIT: ' || vva_test.LIMIT);
      DBMS_OUTPUT.PUT_LINE('중첩테이블 LIMIT: ' || vnt_test.LIMIT);

    END;

결과

    VARRAY COUNT: 4
    중첩 테이블 COUNT: 4
    VARRAY LIMIT: 5
    중첩 테이블 LIMIT:

결과를 보면 알 수 있듯이 LIMIT 함수는 VARRAY에서는 정확히 요소의 최댓값을 가져왔지만, 크기 제한이 없는 중첩 테이블(혹은 연관 배열)에서는 NULL을 반환했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.