Oracle 变量之 DDL_LOCK_TIMEOUT
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle 变量之 DDL_LOCK_TIMEOUT,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2397字,纯文字阅读大概需要4分钟。
内容图文
![Oracle 变量之 DDL_LOCK_TIMEOUT](/upload/InfoBanner/zyjiaocheng/919/f1f60ddda8a24f26b310766618dd9ec5.jpg)
DDL_LOCK_TIMEOUT
Property Description
Parameter type Integer
Default value 0
Modifiable ALTER SESSION
Range of values 0 to 1,000,000 (in seconds)
Basic No
DDL_LOCK_TIMEOUT specifies a time limit for how long DDL statements will wait in a DML lock queue. The default value of zero indicates a status of NOWAIT. The maximum value of 1,000,000 seconds will result in the DDL statement waiting forever to acquire a DML lock.
If a lock is not acquired before the timeout period expires, then an error is returned.
该参数是oralce 11g中才有的;
实验:
--session 1
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> show parameter ddl
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
ddl_lock_timeout integer 0
enable_ddl_logging boolean FALSE
--session 2
SQL> insert into t_1 values('b');
1 row created.
--session 3
SQL> alter table t_1 modify(a varchar2(50));
alter table t_1 modify(a varchar2(50))
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
该错误是执行之后没有等待直接出现;
--session 1
SQL> alter system set ddl_lock_timeout=60;
System altered.
SQL> show parameter ddl
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
ddl_lock_timeout integer 60
enable_ddl_logging boolean FALSE
--session 2
SQL> insert into t_1 values('a');
1 row created.
--session 3
SQL> alter table t_1 modify (a varchar2(30));
alter table t_1 modify (a varchar2(30))
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
该错误是在等待了60秒之后才出现;
--session 3
SQL> alter table t_1 add c number;
则会一直等待下去,直到请求的锁资源被释放(该变量不起作用);
在网上有些文章说,如果是添加列回立即提交,不敢苟同;
---------------------
作者:搞怪的索引
来源:CSDN
原文:https://blog.csdn.net/perfect_db/article/details/9125625
版权声明:本文为博主原创文章,转载请附上博文链接!
内容总结
以上是互联网集市为您收集整理的Oracle 变量之 DDL_LOCK_TIMEOUT全部内容,希望文章能够帮你解决Oracle 变量之 DDL_LOCK_TIMEOUT所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。