오라클 프로시져관련 질문입니다.(exception에서의 insert처리) 0 2 1,223

by 어떠닝히 [Oracle 기초] [2018.01.24 17:52:35]


안녕하세요

오라클 프로시져 질문입니다.

 

jsp에서 csv파일을 선택해서 1차로 화면에 보여주고 저장을 눌렀을 때,

조건이 안맞아서 error가 나면 temp폴더에 저장하고 그것을 return해서 보여주고자 하는데요

프로시져에서 exception 부분에서 막혀서 질문드립니다.

 

1. 프로시져를 통해 insert할 때 예외처리난 데이터들을 다른 temp폴더에 넣고싶습니다.

   EXCEPTION WHEN OTHERS THEN 부분부터 계속 오류가 나는데..방법이 없을까요?

 

 

create or replace PROCEDURE     PR_SAL12_MST_SAVE(P_TYPE              IN  VARCHAR2

                                                 ,P_PEFLT_DT          IN VARCHAR2 

                                                 ,P_PEFLT_NO          IN VARCHAR2 

                                                 ,P_CREWNO            IN VARCHAR2 

                                                 ,P_STRPLC            IN VARCHAR2 

                                                 ,P_DESTPLC            IN VARCHAR2 

                                                 ,O_RETURN          OUT NUMBER     /*RETURN결과*/)

IS

/* 사용자 오류 처리 */

    USER_EXCEPTION      EXCEPTION;

    V_ERR_USR_RETURN    VARCHAR2(400);

    V_ERR_USR_MSG       VARCHAR2(400);

 

    BEGIN 

        BEGIN

               INSERT INTO SALE.SAFCREW

                    ( AIRCOMP_CD,

                    FLIGHT_DT, 

                    FLIGHT_NO, 

                    CREWNO, 

                    CREW_GB, 

                    CREATE_BY, 

                    CREATE_DT, 

                    UPDATE_BY, 

                    UPDATE_DT )

               VALUES 

                    ('01', 

                    P_PEFLT_DT, 

                    P_PEFLT_NO, 

                    P_CREWNO , 

                    '1', 

                    'ADMIN',

                    SYSDATE,

                    'ADMIN',

                    SYSDATE);

       END;

 

    EXCEPTION WHEN OTHERS THEN

     INSERT INTO CM_CREW_TEMP

                            (

                              FLIGHT_DT

                            , FLIGHT_NO

                            , CREWNO

                            , STRPLC

                            , DESTPLC

                            , CREATE_DT

                            )

                    VALUES

                            (

                              P_PEFLT_DT

                            , P_PEFLT_NO

                            , P_CREWNO

                            , P_STRPLC

                            , P_DESTPLC

                            , sysdate 

                            )

      ROLLBACK; 

    END PR_SAL12_MST_SAVE;

    

감사하니다.

by 마농 [2018.01.24 18:25:57]

1. 구문오류 - insert 구문에 세미콜론(;) 누락.
2. 논리오류 - rollback 하면 탬프도 날아감.


by 어떠닝히 [2018.01.27 11:39:19]

넵 항상 감사합니다 덕분에 처리했습니다 ^

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