2012-11-21 3 views
3

Oracle 11g에 세이브 포인트를 만들려고합니다.저장 지점이 생성되지 않았습니다. 오류

ALTER TABLE ORDERS 
DISABLE CONSTRAINT ORDERS_C_ID_FK; 

DELETE FROM CUSTOMER; 

SELECT * FROM CUSTOMER; 

ROLLBACK; 

SELECT * FROM CUSTOMER; 

SAVEPOINT SAVEPOINT1; 

ALTER TABLE ORDERS 
DISABLE CONSTRAINT ORDERS_OS_ID_FK; 

ALTER TABLE ORDER_LINE 
DISABLE CONSTRAINT ORDER_LINE_O_ID_FK; 

TRUNCATE TABLE CUSTOMER; 
TRUNCATE TABLE ORDER_SOURCE; 
TRUNCATE TABLE ORDERS; 
DELETE FROM ORDERS; 

ROLLBACK TO SAVEPOINT1; 

는 그러나 나는 그들이 실행 한 후 이전과 암시 적 커밋을 실행 case-- SQL Developer에서이에서

ROLLBACK TO SAVEPOINT1 Error report: SQL Error: ORA-01086: savepoint 'SAVEPOINT1' never established in this session or is invalid 01086. 00000 - "savepoint '%s' never established" *Cause: Trying to roll back to a save point that was never established. *Action:

답변

6

DDL statements-- ALTER TABLETRUNCATE TABLE을이 오류가 점점 계속. 세이브 포인트가 생성 된 트랜잭션은 첫 번째 ALTER TABLE 문이 실행되기 전에 종료되었습니다. 현재 트랜잭션에 정의 된 세이브 포인트로만 롤백 할 수 있기 때문에 DDL 문을 발행 한 후 세이브 포인트로 롤백 할 수 없습니다.

관련 문제