프로시저에 대해서 질문드립니다.!! 0 1 2,324

by InSilence [PL/SQL] [2010.12.29 19:06:38]


    BEGIN
   IF IN_SUGANG_NO = NULL THEN
  
   SELECT SUBSTR(TO_CHAR(SYSDATE,'YYYY'),1,1)||SUBSTR(TO_CHAR(SYSDATE,'YYYY'),3,2)||'1'||
  DECODE(SUBSTR(MAX(SUGANG_NO),1,3),
SUBSTR(TO_CHAR(SYSDATE,'YYYY'),1,1)||SUBSTR(TO_CHAR(SYSDATE,'YYYY'),3,2),
SUBSTR(MAX(SUGANG_NO),-4),
LPAD(0,4,'0'))+1    AS SUGANG_NO
   INTO IN_SUGANG_NO
  FROM ATIC_SUGANGSAENG_M;
  
   END IF;
  
    EXCEPTION
   
    WHEN OTHERS THEN
    OUT_RTN := 0;
    OUT_MSG := SQLERRM || CHR(13) || 'ERR01: 신규생성 시 오류가 발생하였습니다.';
    ROLLBACK;
    RETURN;
   END;




프로시저 중에 한 부분입니다. 이 부분에서 IN_SUGANG_NO 가 널이면 자동으로 IN_SUGANG_NO를

부여 해야 합니다. INTO로 IN_SUGANG_NO에 값을 넣을려고 하니

SELECT/FETCH 문에 'IN_SUGANG_NO' 식을 INTO 대상으로 사용될 수 없습니다

라는 에러가 뜨네요 고수분들에 의견 부탁드려요 ㅠㅠ
by 마농 [2010.12.30 08:13:24]
1. 조건이 틀렸습니다.
- 널은 이퀄로 비교 할 수 없습니다. IS NULL 로 비교하세요
2. 프로시저의 IN 변수의 값을 변경하실 수는 없습니다.
- IN OUT 으로 선언하시던가, 별도의 변수를 선언해서 사용하세요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입