如果我從應用程序中的多個線程調用以下代碼,是否存在死鎖風險?用於連接數據庫的事務在此調用之前打開,一旦返回就關閉。 應用程序:java 數據庫:Oracle使用Rownum時數據庫死鎖?
FUNCTION reserveWork(in_batch_id NUMBER,
in_work_size NUMBER,
in_contentType_id NUMBER) RETURN NUMBER IS
rows_reserved NUMBER := 0;
BEGIN
UPDATE
D_Q1
SET
DQ1_BAT_ID = in_batch_id
WHERE
DQ1_BAT_ID is null
AND DCT_ID = in_contentType_id
AND ROWNUM < (in_work_size + 1);
rows_reserved := SQL%ROWCOUNT;
RETURN (rows_reserved);
END;
哇,我讀過湯姆凱特的答案在下面的加里的答案中引用。很酷!這意味着如果事務阻止它將被重新啓動,所以它不應該死鎖。 – 2009-02-04 23:44:24