mssql을 오라클로 바꾸고 있는데 오류가 납니다. 0 2 772

by 달콤꼬야 [PL/SQL] [2017.02.27 10:01:19]


--발주량
SET @V_QT_PO =            --20
    (
        SELECT ISNULL(SUM(QT_PO), 0) FROM PU_POL L
        WHERE 
            L.CD_COMPANY = @P_CD_COMPANY
        AND L.NO_PO = @P_NO_PO
        AND L.NO_LINE = @P_NO_POLINE
    )

--기납품량
SET @V_QT_REV =            --50
(
    SELECT ISNULL(SUM(QT_REV_MM - QT_BAD), 0) FROM PU_REV L
    WHERE 
        L.CD_COMPANY = @P_CD_COMPANY
    AND L.NO_PO = @P_NO_PO
    AND L.NO_POLINE = @P_NO_POLINE
)

--현재 저장되는 납품계획번호항번의 기납품량 제외
SET @V_QT_REV = @V_QT_REV - 
(
    SELECT ISNULL(SUM(QT_REV_MM - QT_BAD), 0) FROM PU_REV L
    WHERE 
        L.CD_COMPANY = @P_CD_COMPANY
    AND L.NO_PO = @P_NO_PO
    AND L.NO_POLINE = @P_NO_POLINE
    AND L.NO_REV = @P_NO_REV
    AND L.NO_REVLINE = @P_NO_REVLINE
)

--잔량초과허용여부
DECLARE @V_OVER_YN NVARCHAR(1)
DECLARE @V_RT_YN NVARCHAR(1)
SELECT @V_OVER_YN = CD_EXC FROM MA_EXC WHERE EXC_TITLE = '발주잔량초과허용' AND CD_COMPANY = @P_CD_COMPANY
SELECT @V_RT_YN = CD_EXC FROM MA_EXC WHERE EXC_TITLE = '과입출고허용여부' AND CD_COMPANY = @P_CD_COMPANY

IF @V_OVER_YN = 'Y'
BEGIN
    IF @V_RT_YN = 'Y'
    BEGIN
        SET @V_QT_PO = @V_QT_PO + ISNULL(@V_QT_PO, 0) * (CASE WHEN ISNULL(@V_RT_PLUS, 0) = 0 THEN 0 ELSE @V_RT_PLUS / 100 END)
    END
    ELSE
    BEGIN
        SET @V_QT_PO = 9999999999
    END
END

 

 

이부분을 오라클로 바꾸고 있는데

 

 

  --발주량
  BEGIN
    (SELECT NVL(SUM(QT_PO), 0)
    FROM PU_POL L
    WHERE L.CD_COMPANUY = P_CD_COMPANY
      AND L.NO_PO = P_NO_PO
      AND L.NO_LINE = P_NO_POLINE) INTO V_QT_PO
    EXCEPTION WHEN NO_DATA_FOUND THEN V_QT_PO:= 0;
   END;
 

 

이게 오류가 납니다.

왜그런걸까요ㅠㅠㅠ

plsql 초보입니다.ㅠㅠㅠ

by 마농 [2017.02.27 10:13:36]
BEGIN
    SELECT NVL(SUM(qt_po), 0)
      INTO v_qt_po      -- INTO 의 위치는 요기.
      FROM pu_pol l
     WHERE l.cd_companuy = p_cd_company
       AND l.no_po       = p_no_po
       AND l.no_line     = p_no_poline
    ;                   -- 문장의 끝은 항상 세미콜론(;)으로 마무~으리
EXCEPTION
    WHEN OTHERS THEN    -- no_data_found 발생 가능성 없음(집계함수 결과가 없을 수는 없음)
        V_QT_PO := 0;
END;

 


by 달콤꼬야 [2017.02.27 10:22:46]

진짜 항상 감사합니다ㅠㅠ

바보같이 기본문법도 못지키고 ;도 안찍어서 에러가 났네요ㅠㅠㅠ

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