最有可能就是发生了锁等待.如果楼主有DBA权限,可以用这个语句看下:SELECT (select username FROM v$session WHERE sid=a.sid) blocker, a.sid, 'is blocking', (select username FROM v$session WHERE sid=b.sid) blockee, b.sid FROM v$lock a, v$lock b WHERE a.block = 1 AND b.request > 0 AND a.id1 = b.id1 AND a.id2 = b.id2 / 如果没有DBA权限,则请DBA帮忙处理。
是不是数据库中已经存在这条记录了?select * from tablename where col = 101150955; 看看
a.sid,
'is blocking',
(select username FROM v$session WHERE sid=b.sid) blockee,
b.sid
FROM v$lock a, v$lock b
WHERE a.block = 1
AND b.request > 0
AND a.id1 = b.id1
AND a.id2 = b.id2
/ 如果没有DBA权限,则请DBA帮忙处理。
看看
再次执行该sql,卡住时看v$session_wait看看是在等什么。
是不是101150955已经达到了你字段类型的最大值了,然后在存储位置上,数据文件的增长上又碎片了,无法存储过程这个数据。sql没有问题,业务没有问题,估计是oracle自身的问题了,oracle有时候也会产生一些莫名其妙的问题,建议找DBA来看下。