怎么查看 oracle中某个表空间里的表名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么查看 oracle中某个表空间里的表名相关的知识,希望对你有一定的参考价值。

我试了下面的语句 但是总显示【未选定行】
select table_name ,tablespace_name from dba_tables where tablespace_name = 'users';

想问一下 该怎么解决

直接用超级管理员权限(sysdba)查看每个表空间中表名。
sql:Select Table_Name, Tablespace_Name From Dba_Tables Where Tablespace_Name = '表空间名字';
解释:通过管理员权限登陆后,查看“Dba_Tables ”表中的字段信息即可完成查询表名操作。备注:表空间名字必须大写。
参考技术A Select Table_Name, Tablespace_Name
From Dba_Tables
Where Tablespace_Name = 'USERS';

'users'得大写才行追问

成功了 谢谢。请问 oracle不是不区分大小写的吗?我创建users表空间的时候,都是用的小写,这是为什么啊?

本回答被提问者采纳

查看oracle锁的表名

SELECT * FROM tbl_10 FOR UPDATE;

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
如果有长期出现的一列,可能是没有释放的锁。

请问是否有方法可以查到某个锁是具体锁到哪个表的呢?谢谢!
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects c
WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id
请问这个为什么会有两个同一个session_id的结果;
1 14728 11961 TBL_PNR_10 290 STAR bill?liu
2 14732 50904 TBL_PNR_10 290 STAR bill?liu
难道一个for update会产生两个锁?

下面3个语句是我经常使用来解决oracle锁问题的 -- 注意你的用户有没有权限问题
1. 查看被锁的表
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,
b.os_user_name
FROM v$process p, v$session a, v$locked_object b, all_objects c
WHERE p.addr = a.paddr AND a.process = b.process
AND c.object_id = b.object_id

2. 查看是哪个进程锁的
SELECT sid, serial#, username, osuser FROM v$session where osuser = 'tangpj'

3. 杀掉这个进程 alter system kill session 'sid,serial#';
参考技术A 查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id
查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time
参考技术B SELECT S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0 , ' None ' , 1 , ' Null ' , 2 , ' Row-S (SS) ' , 3 , ' Row-X (SX) ' , 4 , ' Share ' , 5 , ' S/Row-X (SSX) ' , 6 , ' Exclusive ' , TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0 , ' None ' , 1 , ' Null ' , 2 , ' Row-S (SS) ' , 3 , ' Row-X (SX) ' , 4 , ' Share ' , 5 , ' S/Row-X (SSX) ' , 6 , ' Exclusive ' , TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER || ' . ' || O. OBJECT_NAME || ' ( ' || O.OBJECT_TYPE || ' ) ' , S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2
FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S
WHERE L.SID = S.SID AND L.ID1 = O. OBJECT_ID

执行上记SQL语句,可以查寻到数据库中的锁的情报.

SESSION_ID, USERNAME, MODE_HELD, MODE_REQUESTED, OBJECT_NAME, LOCK_TYPE, LOCK_ID

分别是 拥有锁的SESSION_ID,拥有锁的USERNAME,锁的执行模式MODE_HELD,锁的请求MODE_REQUESTED,锁所在的数据库对象名
,锁的类型,锁的ID

以上是关于怎么查看 oracle中某个表空间里的表名的主要内容,如果未能解决你的问题,请参考以下文章

oracle中新建的用户怎么查询它所有的表空间

oracle数据库中表空间和表之间的关系是怎么样的

oracle怎么查看表空间里都有哪些表

在Oracle数据库中如何查询某一个表空间下的某张表里面的数据;怎么查询某个表空间下的所有表的信息

oracle怎么查看用户属于哪个表空间

oracle怎么查看用户属于哪个表空间