Erp100论坛's Archiver

xiangzhao 发表于 2008-7-2 21:01

10g中锁表问题

原来ORACLE是8。1。7的时候,我查看锁表的语句是:
SELECT  "SYS"."V_$LOCKED_OBJECT"."SESSION_ID" ,
           "SYS"."V_$LOCKED_OBJECT"."ORACLE_USERNAME" ,
           "SYS"."V_$LOCKED_OBJECT"."OS_USER_NAME" ,         
           "SYS"."OBJ$"."NAME"     
        FROM "SYS"."V_$LOCKED_OBJECT" ,
             "SYS"."OBJ$"     
        WHERE ( "SYS"."V_$LOCKED_OBJECT"."OBJECT_ID" = "SYS"."OBJ$"."OBJ#" )  
        ORDER BY "SYS"."V_$LOCKED_OBJECT"."ORACLE_USERNAME"          ASC ;
一直运行良好。
现在ORACLE升级到10g,用这个语句就看不到或者看不全系统的锁表情况了。只能通过10g的IE控制台可以看锁表情况。
请问各位高手,这是怎么回事?难道10g不是用视图V_$LOCKED_OBJECT来显示锁的情况吗?

xiangzhao 发表于 2008-7-2 21:01

10G仍然是用这个视图来显示锁表的情况的,测试如下:
SQL> update test1 set sal=4000 where empno=7902;

已更新 1 行。

SQL>
在另外一个session中:
SQL> update test1 set sal=3500 where empno=7902;

这个语句一直处于等待中。

以sys登陆数据库,查询一下这个视图,应该可以看到结果的:
SQL> select session_id from v$locked_object
  2  /

SESSION_ID
----------
       139
       145

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.