⑤ 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을 반환했다.