프로시져 호출관련 질문드립니다.^^(재수정) 0 3 1,567

by 이상민 [2007.05.23 10:12:55]


CREATE OR REPLACE PROCEDURE "AS_MN_REGNORIN_CHECK" ( 
 p_corp_id    IN VARCHAR2,
 p_sect_id   IN VARCHAR2,
 p_req_yymm  IN VARCHAR2,
  p_req_no   IN NUMBER,
 p_req_seq     IN NUMBER,
 p_req_qty     IN NUMBER,
 p_norin_qty   IN NUMBER,
 p_oreq_yymm   IN VARCHAR2,
 p_oreq_no     IN NUMBER,
 p_oreq_seq    IN NUMBER,
 p_ncr_num   IN VARCHAR2,
 p_rtn_cd      IN OUT NUMBER,
 p_rtn_msg   IN OUT VARCHAR2
 ) AS
/*------------------------------------------------------

-----------------------------------------------------*/
vn_req_qty       NUMBER(10) := 0;
vn_norin_qty   NUMBER(10) := 0;
vn_consign    NUMBER(10) := 0;

SELECT   nvl(a.req_qty,0),
           nvl(b.norin_qty,0),
           (
            SELECT    count(*)
            FROM     at_consign_clerk
            WHERE   corp_id  = p_corp_id
            AND    req_yymm = p_oreq_yymm
            AND    req_no   = p_oreq_no
            AND    req_seq  = p_oreq_seq
            AND    ncr_num  = p_ncr_num
           ) as count_consign
      INTO   vn_req_qty,
           vn_norin_qty,
           vn_consign
      FROM    AT_SOREQ_ITEM a,
           AT_MN_NORIN_REASON b
      WHERE   a.req_yymm = b.req_yymm(+)
      AND    a.req_no   = b.req_no(+)
      AND    a.req_seq  = b.req_seq(+)
      AND    a.corp_id  = p_corp_id
      AND    a.sect_id  = p_sect_id
      AND    a.req_yymm = p_req_yymm
      AND    a.req_no   = p_req_no
      AND    a.req_seq  = p_req_seq;
        

      vn_req_qty := vn_req_qty - p_req_qty;
      vn_norin_qty := vn_norin_qty - p_norin_qty;
      vn_consign := vn_consign;
      
      
      IF vn_req_qty <> 0 or vn_norin_qty<>0 then
        p_rtn_cd := -1;
        p_rtn_msg := '-----------';
        ROLLBACK;
        return;
      ELSIF vn_consign<>0 THEN
        p_rtn_cd := -1;
        p_rtn_msg := '---------------';
        ROLLBACK;
        return;
      END IF;        

-----------------------------------------------------------------------

이제 막 오라클을 배우기시작한 신입입니다.

 

이런 프로시져를 만들어서 호출했는데,

IF문 앞에서 팅겨져 버리네요.그전 값들은 분명 IF문 안으로 들어가야하는건데.

안들어가고 팅겨버려서....그래서 Select문의 값이 2개인가해서 확인했더니..그것도 아니구...혹시 비슷한 경험있으신분들^ _ ^조언부탁드립니다.

by 정보가필 [2007.05.23 00:00:00]
괜찮으시면 프로시져 전체를 올려주실래요?

by 이상민 [2007.05.23 00:00:00]
넵!!^ _ ^저야 당연히~!

by finecomp [2007.05.23 00:00:00]
이게 전체소스라면 기본구조인 BEGIN ~ END; Block 처리가 안되어 있군요...;
IF 앞에서 팅기는 건 뭔지 잘 모르겠다는...^^;

건승하시길...수고하세요~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입