日期:2014-05-17  浏览次数:20807 次

并发操作怎么处理死锁
请教下:需要在查询的的同时执行更新操作,只能在一个语句上执行,但是会出现死锁,ora-00060。语句是select id, name, updatestatus(id) from mytable; 

updatestatus的定义如下 
FUNCTION updatestatus(id NUMBER) RETURN NUMBER IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
UPDATE mytable
SET status_code = '02'
WHERE id= id;
COMMIT;
RETURN 0;
END;

请问下这中问题应该怎么解决,各位大神

------解决方案--------------------
单从此语句看无误。

死锁,要结合你的java环境来看,比如,
你是不是放在不正常的while中。
------解决方案--------------------
我想问楼主的是,你这样操作是产生死锁了吗?看着是没有什么问题的。