Database/Oracle
(Oracle11g) select for update 구문에 skip locked으로 1건만 가져오고 싶을 때
데브포유
2025. 10. 21. 16:07
반응형
select for update 구문에 skip locked를 사용해서 이미 lock 걸린 row는 제외하고,
1건만 lock 걸어서 가져오고 싶을 때는
procedure를 만들어서 사용해야 합니다.
create or replace procedure get_pin( pin_no out varchar2)
is
cursor cur is select pin
from coupon
where status = 'A'
for update skip locked;
type t is table of cur%rowtype;
cur_rec t;
begin
open cur;
fetch cur bulk collect into cur_rec limit 1;
close cur;
pin_no := cur_rec(1).pin_no;
end get_pin;반응형