博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用v$enqueue_lock解决ORA-14450的错误
阅读量:6534 次
发布时间:2019-06-24

本文共 721 字,大约阅读时间需要 2 分钟。

【背景】一个TEMP表的字段设置短了,开发要进行修改, 
alter table SALE_TEMP modify CODE VARCHAR2(2000);
就报了一个错误ORA-14450:试图访问已经在使用的事务处理临时表;
 
【原因】当前的表正在被访问,所以修改不了;
【处理方法】其实也很简单,就是找到使用这个表的所有session,然后kill或者让他们退出,然后再执行alter语句;

点击(此处)折叠或打开

  1. 第一步查找对象的object id
  2. select * from dba_objects where object_name='SALE_TEMP'
  3. 第二步找到对象的相应session
  4. select 'alter system kill session '''||SID||','||SERIAL#||''';' from V$session where SID in ( select sid from v$enqueue_lock t where t.type='TO' and id1='12345' )
  5.  
  6. 第三步进行kill的操作
  7. alter system kill session '''||SID||','||SERIAL#||';
操作完成后,直接进行alter的操作,避免表再次被占用;
v$enqueue_lock的视图信息查看
http://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_1147.htm#REFRN30121
ID1里面的定义请看
http://blog.itpub.net/519536/viewspace-693689/

转载地址:http://ydkdo.baihongyu.com/

你可能感兴趣的文章
使用pip命令报You are using pip version 9.0.3, however version 18.0 is available pip版本过期.解决方案...
查看>>
2017.11.14 小组第二次例会
查看>>
(转)LINQ之路
查看>>
WCF 入门
查看>>
Linux Shell编程4
查看>>
Django REST框架--关系和超链接api
查看>>
双击防止网页放大缩小HTML5
查看>>
C#的一些学习方法
查看>>
iOS开发-开发总结
查看>>
c++中的 Stl 算法(很乱别看)
查看>>
Window 包管理工具: chocolatey
查看>>
前端开发入门 --摘自慕克网大漠穷秋
查看>>
U3D Invoke() IsInvoking CancelInvoke方法的调用
查看>>
Javascript 如何生成Less和Js的Source map
查看>>
中间有文字的分割线效果
查看>>
<悟道一位IT高管20年的职场心经>笔记
查看>>
volatile和synchronized的区别
查看>>
js操作listbox
查看>>
快速上手git
查看>>
10.30T2 二分+前缀和(后缀和)
查看>>