为什么在这种情况下会出现保存点错误?

时间:2015-03-16 11:07:21

标签: oracle plsql oracle11g transactions

为什么在执行此块时出现错误“ORA-01086:保存点'X'从未在此会话中建立或无效”?

begin

  savepoint X;

  execute immediate 'alter package ANY_EXISTING_PACKAGE compile';

  rollback to X;

end;

1 个答案:

答案 0 :(得分:2)

DDL在运行之前执行隐式提交,之后执行回滚或提交。因此,在尝试编译包之后,上面示例中的保存点X不再适用。

请参阅:http://docs.oracle.com/cd/E11882_01/server.112/e40540/sqllangu.htm#sthref808