반응형
오라클 프로시저, 함수를 호출할 때 주로 발생하는 에러로 프로시저 혹은 함수 내에서 Array (배열) 변수를 사용할 때, 주어진 크기를 넘어섰을 경우에 발생한다.
DECLARE
TYPE ARR_A IS TABLE OF VARCHAR2(5);
ARR_B ARR_A;
BEGIN
ARR_B := ARR_A('A', 'B', 'C', 'D', 'E');
// 맨 마지막 요소 2개 삭제
ARR_B.TRIM(2);
DBMS_OUTPUT.PUT_LINE(ARR_B(1)); // A
DBMS_OUTPUT.PUT_LINE(ARR_B(2)); // B
DBMS_OUTPUT.PUT_LINE(ARR_B(3)); // C
DBMS_OUTPUT.PUT_LINE(ARR_B(4)); // 삭제된 데이터 (D) <오류 발생>
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END;
초기 배열에 5개의 인자값을 넣은 후에 맨 마지막 인자값 2개를 삭제했으므로 3개의 인자값만 남아있다. 하지만 DBMS_OUTPUT.PUT_LINE()으로 해당 배열의 없는 인자값을 호출했으므로 ORA-06533 오류가 발생한다.
또한 배열을 선언했을 때 크기를 넘어서 인자값을 넣는 경우에도 발생하므로 주의해야한다.
반응형
'개발 & 데이터베이스 > DB' 카테고리의 다른 글
오라클 PL/SQL RAISE_APPLICATION_ERROR 사용자 예외 처리 (0) | 2023.05.09 |
---|---|
오라클 여러 행을 하나의 컬럼으로 만들기 (LISTAGG) 오라클 11g R2 중복 제거 (0) | 2023.04.02 |
오라클 cmd에서 사용자 계정 생성 및 권한 부여 방법 (0) | 2023.01.25 |
오라클 최대값, 최솟값 찾는 GREATEST, LEAST 함수 사용 및 주의사항 (0) | 2022.11.17 |
오라클 ora-01481: 숫자 형식 모델이 부적합합니다. (0) | 2022.09.11 |