oracle에는 롤백이 있습니다. 롤백은 현재 트랜잭션이나 문제가 있는 트랜잭션을 취소하는 데 사용됩니다. 롤백 방법은 트랜잭션의 롤백을 완료하는 데 사용할 수 있습니다. 구문은 "ROLLBACK [암시적 키워드] [TO [SAVEPOINT] savepoint_name | FORCE '문자열'};".
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.
1. 개념
오라클에서 롤백의 사용법은 현재 트랜잭션이나 문제가 있는 트랜잭션을 취소하는 데 사용되는 커밋과 반대입니다.
1.1 구문
ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name | FORCE 'string'};
예:
work - 선택 사항입니다. 암시적 키워드는 작성될 수도 있고 작성되지 않을 수도 있습니다.
to savepoint savepoint_name - 선택 사항입니다. 롤백 문은 savepoint_name에 지정된 저장점까지 현재 세션의 모든 변경 사항을 취소합니다. 이 절을 생략하면 모든 변경 사항이 취소됩니다.
force '문자열 - 선택사항'. 잠재적으로 손상되었거나 문제가 있는 트랜잭션을 강제로 롤백하는 데 사용됩니다. 이 절을 사용하면 작은따옴표로 묶인 트랜잭션 ID를 문자열로 지정할 수 있습니다. dba_2pc_pengding, v$corrupt_xid_list라는 트랜잭션 식별자는 시스템 뷰에서 확인할 수 있습니다. (문제가 있는 트랜잭션은 저장 지점으로 롤백할 수 없습니다.)
1.1 데이터 준비
DROP TABLE stu; -- if exists CREATE TABLE stu ( s_id NUMBER, s_xm VARCHAR2(30) ); ALTER TABLE stu ADD CONSTRAINTS pk_stu_id PRIMARY KEY(s_id);
2. 세이브포인트
롤백 바로가기 가장 가까운 pointsql
DECLARE BEGIN INSERT INTO stu(s_id, s_xm) VALUES(1, '小游子'); SAVEPOINT ps1; INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); SAVEPOINT ps2; -- 若也是 ps1,则回滚至此处(最近) INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK TO ps1; dbms_output.put_line(SQLCODE ||' : '||SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); END;
작업 결과:
추천 튜토리얼: "Oracle Video Tutorial"
위 내용은 오라클에 롤백이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!