Oracle:DDL和事务回滚

Fox*_*BOA 18 oracle ddl transactions

在Oracle DDL(创建/更改)中是否可以像MS SQL(从2005年开始)那样是事务性的?

Vin*_*rat 20

DDL在Oracle中不是事务性的.从11.2文档:

Oracle Database在每个DDL语句之前和之后隐式提交当前事务.


Gol*_*rol 15

不可以.在Oracle DDL语句中,它们本身不是事务性的.

在开始实际工作之前,运行DDL语句将隐式提交该会话的任何打开事务.

此外,如果另一个会话在要修改的对象或其依赖项之一上有一个打开的事务,则某些语句(如alter table语句)可能会失败.您可以设置ddl_lock_timeout以指定Oracle希望等待对象可用的时间.

有关DLL语句类型的摘要以及有关锁和事务的行为的信息,请参阅DDL语句.