次のコードがアプリケーション内の複数のスレッドから呼び出されている場合、デッドロックのリスクはありますか? このためにデータベースに接続するために使用されるトランザクションは、この呼び出しの直前に開かれ、戻ると閉じられます。アプリケーション: Java データベース: Oracle
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;