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

Oracle 为什么在这种情况下会出现保存点错误?,oracle,plsql,oracle11g,transactions,Oracle,Plsql,Oracle11g,Transactions,为什么执行此块时会出现错误“ORA-01086:保存点“X”在此会话中从未建立或无效” begin savepoint X; execute immediate 'alter package ANY_EXISTING_PACKAGE compile'; rollback to X; end; DDL在运行之前执行隐式提交,然后执行回滚或提交。因此,在尝试编译包之后,上面示例中的保存点X不再适用 请参阅:不能使用DDL语句回滚到保存点。

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

begin

  savepoint X;

  execute immediate 'alter package ANY_EXISTING_PACKAGE compile';

  rollback to X;

end;

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


请参阅:

不能使用DDL语句回滚到保存点。