다음과 같은 프로시저를 만들었습니다.
CREATE PROCEDURE "DBA"."sp_temp"(check_flag integer)
begin
truncate table DBA.temp;
insert into temp values( 1) ;
insert into temp values( 2) ;
insert into temp values( 3) ;
insert into temp values( 4) ;
insert into temp values( 1) ;
commit work
end
테이블은 다음과 같습니다.
CREATE TABLE TEMP
(a int
,primary key(a));
위 프로시저에 Transaction 을 제어하고 싶은데 어떻게 하면
되는지요?
즉 마지막에 insert into temp values( 1) ;
을 넣을때 pk duplication으로 에러가 발생하는데..
이런경우 테이블에는 테이터가 하나도 들어가지 않게 하려고
합니다.
프로시져 수행중. 오류가 발생시 모든 값을 rollback하게 할려면
어떻게 해야 하는지요?
|