③ EXTEND 메소드
EXTEND 메소드는 TRIM과는 반대로 VARRAY와 중첩 테이블의 끝에 요소를 추가하는 기능을 수행하며, 다음과 같이 3가지 형태로 사용된다.
• EXTEND → 해당 컬렉션의 맨 끝에 NULL인 요소 하나를 추가한다.
• EXTEND (n) → 해당 컬렉션의 맨 끝에 값이 NULL인 요소를 n개 추가한다.
• EXTEND (n, i) → 해당 컬렉션의 i번째에 있는 요소를 맨 끝에 n개 복사해 추가한다.
예제를 통해 동작 방식을 확인해 보자.
입력
DECLARE
-- 중첩 테이블 선언
TYPE nt_typ IS TABLE OF VARCHAR2(10);
-- 변수 선언
vnt_test nt_typ;
BEGIN
-- 생성자를 사용해 값 할당
vnt_test := nt_typ('FIRST', 'SECOND', 'THIRD');
-- 맨 끝에 NULL 요소 추가한 뒤 값 할당 후 출력
vnt_test.EXTEND;
vnt_test(4) := 'fourth';
DBMS_OUTPUT.PUT_LINE(vnt_test(4));
-- 맨 끝에 첫 번째 요소를 2개 복사해 추가 후 출력
vnt_test.EXTEND(2, 1);
DBMS_OUTPUT.PUT_LINE('첫번째 : ' || vnt_test(1));
-- 첫 번째 요소를 복사해 2개 추가했으므로 추가된 요소는 5, 6
DBMS_OUTPUT.PUT_LINE('추가한 요소1 : ' || vnt_test(5));
DBMS_OUTPUT.PUT_LINE('추가한 요소2 : ' || vnt_test(6));
END;
결과
fourth
첫번째 : FIRST
추가한요소1 : FIRST
추가한요소2 : FIRST