2011-08-16 4 views
0

데이터 폼의 프로 시저 lock_pron이 프로 시저 'lock_fn'을 호출하도록 설정된 오라클 폼이 있습니다. 절차 'lock_fn은'다음과 같습니다오라클 폼 - 프로 시저 잠금 프로퍼티

procedure lock_fn(outp IN OUT out_tab) IS 
l_first BINARY_INTEGER := outp.first; 
l_last BINARY_INTEGER := outp.last; 
l_id a.id%type; 
BEGIN 
    for i in l_first .. l_last loop 
     select id 
     into l_id 
     from a 
     where a.id=outp(i).id; 
    end loop; 
END lock_fnl; 

내 질문은, 단지 식별자가 행 레벨 잠금을 보장 선택겠습니까한다? 어떤 도움이 가장 환영받을 것입니다.

편집 :

DECLARE 
bk_data FRMPKG.OUT_TAB; 
BEGIN 
PLSQL_TABLE.POPULATE_TABLE(bk_data, 'LOCK_FN', PLSQL_TABLE.LOCK_RECORDS); 
FRMPKG.LOCK_FN(bk_data); 
END; 

답변

3

단지 식별자가 행 레벨 잠금을 보장 선택합니다 : 데이터 블록의 LOCK-절차 트리거는 아래의 코드처럼 보이는이 자동으로 생성했다?

아니요. SELECT FOR UPDATE가 필요합니다 (단, 하나의 열만 선택하면 충분합니다).

+0

빠른 답장을 보내 주셔서 감사합니다. 문제의 코드가 잠금과 관련하여 전혀 효과가 있습니까? 나는 생산 방식 중 하나에서 그것을 발견했다. – digdug

+1

어쩌면 나는 뭔가를 놓치고있다. 그냥 선택하면 잠금을 얻지 못하므로 다른 사람을 차단하거나 다른 사람이 차단하지 않습니다. – Thilo

관련 문제