하나의 VARRAY를 여러 번 사용하는 스크립트가 있습니다. 그러나 VARRAY를 한 번 반복 한 후 재설정하는 방법을 알아낼 수 없습니다. 나는 내 문제를 해결하기 위해 다음과 같은 기본 스크립트를 썼다가 한 번만 배열을 통해 반복 될 때VARRAY를 여러 번 채우는 방법
DECLARE
TYPE multi_show_id_type IS VARRAY (60) OF VARCHAR2 (10);
multi_show_id multi_show_id_type := multi_show_id_type();
counter NUMBER := 1;
i NUMBER := 1;
BEGIN
DBMS_OUTPUT.put_line ('BEGIN');
WHILE i < 10
LOOP
DBMS_OUTPUT.put_line (i);
--counter:=0;
--multi_show_id :=multi_show_id_type();
--multi_show_id.delete;
WHILE counter < 25
LOOP
multi_show_id.EXTEND();
multi_show_id (counter) := counter * counter;
DBMS_OUTPUT.put_line ('VArray: [' || counter || '] [' || multi_show_id (counter) || ']');
counter := counter + 1;
END LOOP;
i := i + 1;
END LOOP;
DBMS_OUTPUT.put_line ('END');
END;
/
이 스크립트가 작동합니다. 그러나 counter:=0
행의 주석 처리를 제거하면 배열 모집단 루프를 10 번 반복해야하므로 ORA-06532
오류가 발생합니다. 다른 주석 처리 된 줄에서 내가 시도한 것들을 볼 수 있습니다. 어떤 도움을 주시면 감사하겠습니다.
방법 이게 내 문제를 해결합니까? VARRAY가 모든 루프에서 다시 시작되기를 바란다. 내 실제 프로그램의 경우 배열에 4 개 이상의 값이 저장되지 않으며 일반적으로 하나만 저장됩니다. –