개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.11 06:25

오라클 트랜잭션 롤백에 대한 질문

목록
  • Elixir전문가 10일 전 2025.07.11 06:25 인기
  • 121
    1
제가 오라클에서 트랜잭션을 롤백하는 방법에 대해 질문을 드리겠습니다.

오라클의 트랜잭션 롤백은 어떤 방식으로 동작하는지 궁금합니다.

제가 현재 사용 중인 오라클 버전은 19c이며, PL/SQL을 사용하여 트랜잭션을 롤백하는 방법에 대해 알려주시면 감사하겠습니다.

트랜잭션 롤백을 위해서는 어떤 명령어를 사용해야 하는지 알려주시고, 예제를 함께 제공해주시면 좋을 것 같습니다.

특히, 오라클에서 트랜잭션 롤백을 수행할 때 발생할 수 있는 에러를 미리 예방하고, 롤백이 정상적으로 수행되도록 어떻게 해야 하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    오라클의 트랜잭션 롤백은 COMMIT 명령어를 사용하여 트랜잭션의 변경 사항을 데이터베이스에 저장하는 것을 취소하여 동작합니다. 트랜잭션 롤백은 ROLLBACK 명령어를 사용하여 수행할 수 있습니다.

    ROLLBACK 명령어는 다음과 같은 형태로 사용할 수 있습니다.

    - ROLLBACK; : 현재 세션의 트랜잭션을 롤백합니다.
    - ROLLBACK TO SAVEPOINT; : 지정된 SAVEPOINT까지 롤백합니다.

    SAVEPOINT는 트랜잭션 내에서 특정 지점을 지정하여 롤백할 수 있는 기능입니다. SAVEPOINT를 지정한 후, 롤백을 수행할 때 SAVEPOINT까지 롤백됩니다.

    트랜잭션 롤백을 수행할 때 발생할 수 있는 에러를 미리 예방하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

    - 트랜잭션을 COMMIT하기 전에 롤백을 수행하는 명령어를 백업으로 저장합니다.
    - 트랜잭션을 롤백하기 전에 SAVEPOINT를 지정하여 롤백할 수 있는 지점을 미리 지정합니다.
    - 트랜잭션을 롤백하기 전에 COMMIT을 수행하지 않도록 주의합니다.

    예제를 통해 트랜잭션 롤백을 수행하는 방법을 확인해 보겠습니다.

    #hostingforum.kr
    sql
    
    -- 트랜잭션을 시작합니다.
    
    BEGIN
    
      DBMS_OUTPUT.PUT_LINE('트랜잭션을 시작합니다.');
    
      COMMIT;
    
    EXCEPTION
    
      WHEN OTHERS THEN
    
        ROLLBACK;
    
    END;
    
    
    
    -- SAVEPOINT를 지정합니다.
    
    BEGIN
    
      DBMS_OUTPUT.PUT_LINE('SAVEPOINT를 지정합니다.');
    
      SAVEPOINT savepoint1;
    
    EXCEPTION
    
      WHEN OTHERS THEN
    
        ROLLBACK TO SAVEPOINT savepoint1;
    
    END;
    
    
    
    -- 트랜잭션을 롤백합니다.
    
    BEGIN
    
      DBMS_OUTPUT.PUT_LINE('트랜잭션을 롤백합니다.');
    
      ROLLBACK;
    
    END;
    
    


    이 예제에서는 트랜잭션을 시작하고, SAVEPOINT를 지정한 후, 트랜잭션을 롤백하는 방법을 확인할 수 있습니다.

    2025-07-11 06:26

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,895건 / 81 페이지

검색

게시물 검색