在数据库表里直接执行语句
查看哪些对象被锁:
select object_name, machine, 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;
杀死一个进程:
alter system kill session 'sid,serial#';
之后,再次查询是没有被锁对象的,此时执行表的delete语句,执行不成功(只是一直在查询时间),请问这是什么问题?
业务逻辑功能删除时也会锁表,执行逻辑代码如下(若有不完善的地方,请指教一下):
List delSqls = new ArrayList<>();
for (String id : ids) {
String sql2 = " update table1 set name = '1' where id = ?;
String sql3 = " delete from table2 where id = ?;
String sql3 = " delete from table3 where id = ?;
String sql3 = " delete from table4 where id = ;
delSqls.add(sql2);
delSqls.add(sql3);
delSqls.add(sql4);
delSqls.add(sql5);
}
dao.executeSql(delSqls);