`
toyota2006
  • 浏览: 545315 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Oracle 表解锁

阅读更多
今天把DataStage导一个大表,一不小心把表给锁住了........

      其实解锁并不复杂,用PL/SQL可以很方便解锁,可以用两种方式得到目前被锁住的表。第一种是,直接从,Tools->Session里面查看,里面有很多的Session和进程,下面有一个Lock的Tab,选中那个Tab,然后一条一条地去上面Session,如果Lock这一栏有数据,就说明被锁住了,在Objec_Name里面可以看到表名。

      如果是自己的表,可以得到Sid和Serial#,接着执行以下语句就可以解锁:

      alter system kill session 'sid,serial#';

     第二种方法是用语句得到详细的被锁住的表的信息,语句如下:


SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT Null



     可以从object_name中看到表名,以及其它的信息,再用上面提到的解锁语句,就可以了!!!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics