【发布时间】:2014-08-11 00:19:24
【问题描述】:
我有一系列我想在事务中运行的重命名表 ddl 语句。在此期间,还将运行其他会话,这可能会劫持用于上述重命名的表并导致资源争用/死锁。
是否有可能在 Oracle 中实现?了解每个 ddl 语句将在每次执行后提交,这将释放表以供其他会话劫持。如何确保正在执行 DDL 语句的当前会话在其他会话可以访问表之前成功完成?
--LOCK TABLE a
RENAME tbl a to b
--possible contention as commit release the lock on tbl a
RENAME tbl b to c
RENAME tbl c to d
--commit
【问题讨论】:
-
@Thilo 不幸的是,
CREATE SCHEMA功能仅支持少量 DDL 命令,而 RENAME 不是其中之一。
标签: oracle oracle11g oracle10g ddl