패키지 프로시저가 제대로 작동하는지 의문입니다. 0 3 2,431

by 콩이 패키지 프로시저 [2013.05.02 17:12:46]


안녕하세요..

아래와 같은 패키지에 등록된 프로시저를 잡에 등록하여 실행중인데요...
컴파일도 잘 되구.. 작동은 하는거 같은데 
INSERT/DELETE 쪽이 제대로 안되는거 같아서요..
제대로 데이터가 백업 테이블로 안들어오구요..
기존 데이터 삭제도 잘 안됩니다.

할려는건 REPORT, REPORT_DETAIL 테이블에서 최근 3개월이 지난 데이터는 백업테이블로 옮기고
삭제하는 프로시저입니다.

구문은 아래와 같습니다.

 PROCEDURE REPORT_BAK
    IS
    BEGIN
      /* 백업 및 삭제 */
      --REPORT 백업
      INSERT /*+ append */ INTO REPORT_BACKUP
      SELECT * FROM REPORT WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
      --REPORT 삭제
      DELETE FROM REPORT WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
    --REPORT DETAIL 백업
      INSERT /*+ append */ INTO REPORT_DETAIL_BACKUP
      SELECT * FROM REPORT_DETAIL WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
      --REPORT DETAIL 삭제
      DELETE FROM REPORT_DETAIL WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');

    /*백업 및 삭제 */
    --REPORT 백업
      INSERT /*+ append */ INTO REPORT_BACKUP2
      SELECT * FROM REPORT2 WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
      --REPORT 삭제
      DELETE FROM REPORT2 WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
    --REPORT DETAIL 백업
      INSERT /*+ append */ INTO REPORT_DETAIL_BACKUP2
      SELECT * FROM REPORT_DETAIL2 WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');
      --REPORT DETAIL 삭제
      DELETE FROM REPORT_DETAIL2 WHERE SENDDATE <= TO_CHAR(add_months(SYSDATE,-3),'YYYYMMDDHH24MISS');

      COMMIT;
    EXCEPTION
        WHEN OTHERS THEN
                ROLLBACK;
END REPORT_BAK;
by 아린 [2013.05.02 18:35:14]
구문상으로는 별 문제가 없을듯 한데요.

위 프로시져는 월단위로 작동하나요?

SENDDATE  컬럼 TYPE 은 어떻게 되나요?

by pranludi [2013.05.03 02:37:11]
dbms_output.put_line 으로 한줄씩 디버깅으로 해보는게 어떨까요?

by 마농 [2013.05.03 08:58:28]
Exception 처리되어 롤백되었나보네요.
Exception 에서 sqlcode, sqlerrm 을 찍어보세요.
Exception 을 아예 빼고 실행해서 에러를 발생시키는 방법도.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입