1
내 응용 프로그램의 세 가지 다른 인스턴스에서 다음 쿼리가 하나씩 큐에서 하나씩 테이블의 행을 읽으려고합니다.Oracle DB가 다음에 잠겨져 있지 않은 행을 읽습니다.
SELECT * FROM order_request_status ors WHERE ors.status = 'new' and ROWNUM <= 1 order by ors.id asc for update skip locked
지금 문제는 행이 하나의 응용 프로그램 인스턴스에 의해 잠겨 있다면 두 번째 응용 프로그램 인스턴스가 쿼리에 의해 다음에 잠기지 않은 행을 읽도록하는 것입니다. 하지만 이것으로는 작동하지 않습니다 - 업데이트 건너 뛰기가 잠겼습니다.
oracle db를 사용하여 기능과 같은 큐를 구현할 수있는 방법을 제안하십시오.
커서에서 레코드 하나를 가져 오는 방법은 무엇입니까? 내가 그것을 오름차순으로 ID를 주문하여 시스템에 입력 된 첫 번째 레코드를 가져올 수 있도록 그것을 제한하는 rownum을 사용하고 있습니다. – vashishth
'retch into r' https://docs.oracle.com/database/121/LNPLS/static.htm#GUID-9DEED64C-A87E-4EAD-97DA-ABDD3FDF172C –