一、查看被锁的表
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
二、解锁表语句
alter system kill session '#SID#,#serial#';
三、被锁的表生成批量解表语句
select 'alter system kill session ''' || sess.sid || ',' || sess.serial# || ''';'
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
四、查看用户连接数
SELECT machine,terminal,osuser,program,process,logon_time,username,command,sql_hash_value FROM v$session
v$session:
这个视图主要提供的是一个数据库connect的信息,
主要是client端的信息,比如以下字段:
machine 在哪台机器上
terminal 使用什么终端
osuser 操作系统用户是谁
program 通过什么客户端程序,比如TOAD
process 操作系统分配给TOAD的进程号
ogon_time 在什么时间
username 以什么oracle的帐号登录
command 执行了什么类型的SQL命令
sql_hash_value SQL语句信息
五、检验数据库是否存在此表
# TABLE_NAME(表名)
# OWNER(所属用户下)
SELECT COUNT(*) COUNT FROM ALL_TABLES WHERE 1=1 AND TABLE_NAME = UPPER('MS_TCJ_620546I01') AND OWNER = UPPER('JHYSC')