想知道这条sql语句是什么意思?

烨小子 2016-01-15 10:39:10
SELECT b.session_id AS sid,
NVL(b.oracle_username, '(oracle)') AS username,
a.owner AS object_owner,
a.object_name,
Decode(b.locked_mode, 0, 'None',
1, 'Null (NULL)',
2, 'Row-S (SS)',
3, 'Row-X (SX)',
4, 'Share (S)',
5, 'S/Row-X (SSX)',
6, 'Exclusive (X)',
b.locked_mode) locked_mode,
b.os_user_name
FROM dba_objects a,
v$locked_object b
WHERE a.object_id = b.object_id
ORDER BY 1, 2, 3, 4
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyon2008 2016-02-17
  • 打赏
  • 举报
回复
查看锁的用户、进程、主体,和锁类型
卖水果的net 2016-02-17
  • 打赏
  • 举报
回复
v$locked_object 这个视图,就是查询正在被锁住的对象,无论是行锁还是表锁,无论共享还是独占。
rick-he 2016-02-17
  • 打赏
  • 举报
回复
引用 3 楼 u013412490 的回复:
[quote=引用 1 楼 codeck 的回复:]

SELECT b.session_id AS sid,  
       NVL(b.oracle_username, '(oracle)') AS username,  --为空则显示'oracle'
       a.owner AS object_owner,   
       a.object_name, 
       Decode(b.locked_mode, 0, 'None',   -- 检查b.locked_mode列 如果为0则输出'NONE',
                             1, 'Null (NULL)',              -- 如果为1 则输出'Null (NULL)'
                             2, 'Row-S (SS)',              -- ....
                             3, 'Row-X (SX)', 
                             4, 'Share (S)', 
                             5, 'S/Row-X (SSX)', 
                             6, 'Exclusive (X)',          
                             b.locked_mode) locked_mode,  --如果都不是 则原样输出
       b.os_user_name 
FROM   dba_objects a,  -- a表 
       v$locked_object b  --b 表
WHERE  a.object_id = b.object_id   --a交b
ORDER BY 1, 2, 3, 4  --排序 1代表sid,2代表username,3代表object_owner ,4代表locked_mode
一楼的兄台,我想问一下,那这个表,如果在数据库里进行查询,没有一条记录是不是意味着没有表被锁?[/quote] 对的,没有表被锁
Super_鹏 2016-02-17
  • 打赏
  • 举报
回复
1楼正解,回复3楼的不会死锁
ghx287524027 2016-01-15
  • 打赏
  • 举报
回复
每一句的含义就是一楼说的那样,语句的目的应该是想查找被锁定对象的一系列信息。
PCCYC 2016-01-15
  • 打赏
  • 举报
回复

SELECT b.session_id AS sid,  
       NVL(b.oracle_username, '(oracle)') AS username,  --为空则显示'oracle'
       a.owner AS object_owner,   
       a.object_name, 
       Decode(b.locked_mode, 0, 'None',   -- 检查b.locked_mode列 如果为0则输出'NONE',
                             1, 'Null (NULL)',              -- 如果为1 则输出'Null (NULL)'
                             2, 'Row-S (SS)',              -- ....
                             3, 'Row-X (SX)', 
                             4, 'Share (S)', 
                             5, 'S/Row-X (SSX)', 
                             6, 'Exclusive (X)',           
                             b.locked_mode) locked_mode,  --如果都不是 则原样输出
       b.os_user_name 
FROM   dba_objects a,  -- a表 
       v$locked_object b  --b 表
WHERE  a.object_id = b.object_id   --a交b
ORDER BY 1, 2, 3, 4  --排序 1代表sid,2代表username,3代表object_owner ,4代表locked_mode
烨小子 2016-01-15
  • 打赏
  • 举报
回复
引用 1 楼 codeck 的回复:

SELECT b.session_id AS sid,  
       NVL(b.oracle_username, '(oracle)') AS username,  --为空则显示'oracle'
       a.owner AS object_owner,   
       a.object_name, 
       Decode(b.locked_mode, 0, 'None',   -- 检查b.locked_mode列 如果为0则输出'NONE',
                             1, 'Null (NULL)',              -- 如果为1 则输出'Null (NULL)'
                             2, 'Row-S (SS)',              -- ....
                             3, 'Row-X (SX)', 
                             4, 'Share (S)', 
                             5, 'S/Row-X (SSX)', 
                             6, 'Exclusive (X)',          
                             b.locked_mode) locked_mode,  --如果都不是 则原样输出
       b.os_user_name 
FROM   dba_objects a,  -- a表 
       v$locked_object b  --b 表
WHERE  a.object_id = b.object_id   --a交b
ORDER BY 1, 2, 3, 4  --排序 1代表sid,2代表username,3代表object_owner ,4代表locked_mode
一楼的兄台,我想问一下,那这个表,如果在数据库里进行查询,没有一条记录是不是意味着没有表被锁?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧