ITPub博客

首页 > 数据库 > Oracle > Oracle 11g DDL_LOCK_TIMEOUT参数说明

Oracle 11g DDL_LOCK_TIMEOUT参数说明

原创 Oracle 作者:feelpurple 时间:2016-12-27 18:38:04 0 删除 编辑
在对表进行TRUNCATE操作时,如果表上有DML操作而未提交或回滚事务,则会操作失败

会话一
SQL> insert into emp values(10,100);

1 row created

会话二
SQL> TRUNCATE TABLE EMP REUSE STORAGE;
TRUNCATE TABLE EMP REUSE STORAGE
               *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

提交事务后,TRUNCATE操作执行成功

会话一
SQL> commit;

Commit complete.

会话二
SQL> TRUNCATE TABLE EMP REUSE STORAGE;

Table truncated.

在执行TRUNCATE操作时,可以在会话上使用DDL_LOCK_TIMEOUT参数
DDL_LOCK_TIMEOUT指定了DML锁队列中一个DDL语句的等待时间(单位是秒)。默认值0代表了NOWAIT状态。

会话一
SQL> insert into emp values(10,100);

1 row created.

会话二
SQL> alter session set ddl_lock_timeout=30;

Session altered.

SQL> TRUNCATE TABLE EMP REUSE STORAGE;
(会话等待)

会话一
SQL> commit;

Commit complete.

会话二
SQL> TRUNCATE TABLE EMP REUSE STORAGE;

Table truncated.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26506993/viewspace-2131481/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-08-01

  • 博文量
    404
  • 访问量
    1673940