ORA-06502 : PL/SQL: numeric or value error

에러 코드: ORA-06502

에러 메시지: PL/SQL: numeric or value error

 

발생 원인

이 에러는 PL/SQL 블록에서 데이터 타입 불일치 또는 값 범위 초과 때문에 발생합니다. 예를 들어, 변수에 할당된 값이 변수 타입의 범위를 초과하거나, 잘못된 타입의 데이터를 변수에 할당하려고 할 때 이 에러가 발생할 수 있습니다.

 

예제

다음은 ORA-06502 에러가 발생하는 예제입니다.

DECLARE
  v_num NUMBER(5);
BEGIN
  v_num := 100000; -- 이 값은 num_var의 선언 범위를 초과합니다.
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;

위 예제에서 v_num은 최대 5자리까지의 숫자를 저장할 수 있도록 선언되었습니다. 하지만, 100000은 6자리 숫자이므로 이 코드를 실행하면 ORA-06502 에러가 발생합니다.

 

해결 방법

이 에러를 해결하기 위해서는 변수의 데이터 타입과 크기를 적절히 조정하거나, 입력되는 값이 변수의 정의 범위 내에 있는지 확인해야 합니다. 또한, 데이터 변환 작업 시에도 데이터 타입이 적절히 맞는지 검토가 필요합니다.