티스토리 뷰

반응형

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;
반응형