oracle记录解锁
2015-06-03 15:39
519 查看
oracle 怎样查一个表中的记录是否被锁住了
怎么查询一个数据库中有几个表引用了其中某个特定表的主键做为其外键的select t.table_name from user_constraints t
where t.constraint_type='R' and t.r_constraint_name
in(
select s.constraint_name from user_constraints s
where s.table_name='主表名' and s.constraint_type='P')
oracle 怎样查一个表中的记录是否被锁住了
SELECT a.object_id, a.session_id, b.object_name
FROM v$locked_object a, dba_objects b
WHERE a.object_id = b.object_id
为表添加普通索引的SQL语句是怎样的?
create Index index_name on table_name(col1_name,col2_name...);
注:
1.index_name :你建立的索引名
2.table_name:你将要加索引的表名
3.col1_name:你要加索引的列名,从col1_name往后的列名都可以为空,如果不为空就变为组合索引。
给锁住的行解锁(oracle)
1、查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令:
select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id
SELECT lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name, o.owner,o.object_name,o.object_type,s.sid,s.serial# FROM v$locked_object l,dba_objects o,v$session s WHERE l.object_id=o.object_id AND l.session_id=s.sid ORDER BY o.object_id,xidusn DESC
2、找出数据库的serial#,以备杀死:
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;
3、杀死该session
alter system kill session 'sid,serial#'
用步骤2中查出来的记录,对应进该语句删除
相关文章推荐
- 详解Oracle DELETE和TRUNCATE 的区别
- Oracle 11gR2 使用RMAN Duplicate复制数据库
- oracle 监测数据库是否存在指定字段
- Oracle登陆触发器
- oracle 11g expdp impdp详细使用方法
- oracle中LAG()和LEAD()等分析统计函数的使用方法(统计月增长率)
- Oracle死锁查询及处理
- Oracle Hints具体解释
- Oracle常用命令(no.3)
- 笨拙而诡异的 Oracle(之二)
- oracle获取某时间段内的年份、月份、日期列表
- Oracle表空间管理
- Oracle中packages的使用
- Oracle在表上建立自增字段的方法
- 设置oracle数据库密码永不过期(ORA-28002)
- 使用sqlldr命令导入资料到Oracle数据库表中的示例说明
- 基于ORACLE数据库的循环建表及循环创建存储过程的SQL语句实现
- oracle 数据类型详解---日期型
- oracle 数据类型详解---日期型
- oracle 数据类型详解---日期型