오라클 프로시저 데이터를 찾을 수 없음 에러

오라클 프로시저를 사용하여 DB 작업을 하다보면 어떤 값을 추출하여 변수에 담고 변수에 담은 값을 어떤 로직에 의해서 처리하는 경우가 많습니다.



그런데 이런경우 프로시저를 만들고 돌렸을 때
ORA-06502: PL/SQL: 수치 또는 값 오류: 문자열 버퍼가 너무 작습니다
ORA-01403: 데이터를 찾을 수 없습니다.
이런 에러들이 심심치않게 보입니다.

하여 오늘은 오라클 프로시저 데이터를 찾을 수 없음 에러에 대한 해결 책을 알아보겠습니다.




V_EQP_LARGE_ID VARCHAR2(20) := ''; /* 변수 */
SELECT LARGE_ID INTO V_EQP_LARGE_ID FROM P_EQP_GENERAL WHERE SA_NO = P_SA_NO AND LARGE_ID = V_CATEGORY_LARGE_ID;
    IF (V_P_ERROR_STATUS = 0 AND V_EQP_LARGE_ID IS NULL) THEN
      V_P_ERROR_STATUS := '15';
    END IF;

아마 대부분 ms sql을 사용하시던 분들이 실수하실 덴데요. 위와 같이 ms sql 처럼 사용하시면 에러가 발생합니다.

해결 방법은 정보가 없을 때를 대비하여 dual 테이블을 활용하는 방법 입니다.

바로 아래의 쿼리같이 하시면 되겠습니당...ㅎㅎㅎ
  IF (P_SA_NO IS NOT NULL AND V_CATEGORY_LARGE_ID IS NOT NULL) THEN
    SELECT
      Z.LARGE_ID INTO V_EQP_LARGE_ID
    FROM (
          SELECT LARGE_ID FROM P_EQP_GENERAL WHERE SA_NO = P_SA_NO AND LARGE_ID = V_CATEGORY_LARGE_ID
          ) Z
          RIGHT OUTER JOIN DUAL ON 1=1;
 
    IF (V_P_ERROR_STATUS = 0 AND V_EQP_LARGE_ID IS NULL) THEN
      V_P_ERROR_STATUS := '15';
    END IF;
  END IF;




이상으로 오라클 프로시저 데이터를 찾을 수 없음 에러에 대한 해결 방법에 대해서 알아보았습니다.

오늘도 행복하고 좋은 하루 되시길 바랍니다^^

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

석청 효능 및 석청 부작용 알아보기

인성검사 팁 (인성검사 합격)