oracle 查看表占用
时间: 2023-07-26 22:36:21 浏览: 39
您可以使用以下 SQL 查询来查看表占用情况:
```sql
SELECT
s.sid,
s.serial#,
s.username,
s.osuser,
s.program,
s.machine,
s.terminal,
s.module,
s.action,
s.logon_time,
q.sql_id,
q.sql_text,
t.owner || '.' || t.table_name AS table_name,
l.oracle_username,
l.os_user_name,
DECODE(l.locked_mode,
0, 'None',
1, 'Null',
2, 'Row-S (SS)',
3, 'Row-X (SX)',
4, 'Share',
5, 'S/Row-X (SSX)',
6, 'Exclusive') AS lock_mode,
l.mode_held,
l.mode_requested,
s.last_call_et
FROM
v$session s,
v$locked_object l,
dba_tables t,
v$sql q
WHERE
s.sid = l.session_id
AND l.object_id = t.data_object_id
AND s.sql_id = q.sql_id(+)
AND t.owner = '&OWNER'
AND t.table_name = '&TABLE_NAME';
```
其中,&OWNER 和 &TABLE_NAME 需要替换为需要查询的表的所有者和表名。
执行以上 SQL 查询后,您将可以查看到占用该表的会话信息、锁定模式、锁定类型等信息。