h2.동시성 구현 사례
h4.채번 하는 방법
-- 테이블 생성
Create table seq_tab (
Gubun varchar2(1),
Seq number,
Constraint pk_seq_tab primary key(gubun,seq))
-- Procedure 생성
Create or replace function seq_nextval (l_gubun number) return number
As
/** pragma autonomous_transaction; **/
l_new_seq seq_tab.seq%type;
begin
update seq_tab
set seq = seq + 1
where gubun = l_gubun;
select seq into l_new_seq
from seq_tab
where gubun = l_gubun;
commit;
return l_new_seq;
end;
/
--Transaction
Begin
Update tab1 set col1 = :x where col2 = :y;
Insert into tab2 values
(seq_nextval(123), :x, :y, :z);
Loop
--do anything....
End loop;
Commit;
Exception
When others then
Rollback;
End;
h4.선분이력 정합성 유지
Declare
cur_dt varchar2(14);
begin
① cur_dt := to_char(sysdate, 'yyyymmddhh24miss');
② update 부가서비스이력
Set 종료일시 = to_date(:cur_dt, 'yyyymmddhh24miss');
Where 고객ID = 1
And 부가서비스ID = 'A'
And 종료일시 = to_date('99991231235959', 'yyyymmddhh24miss');
③ insert into 부가서비스이력(고객ID, 부가서비스ID,시작일시,종료일시)
Values(1, 'A', to_date(:cur_dt, 'yyyymmddhh24miss'),
To_date('99991231235959', 'yyyymmddhh24miss'));
④ commit;
End;
- 강좌 URL : http://www.gurubee.net/lecture/3016
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.