create function BEGIN 문안에 BEGIN TRANSACTION 처리를 어떻게 하는지 궁금합니다.
예를 들어 아래와 같이 한 경우
create table dw.sp_test (aa int, bb char(8));
create table dw.sp_test1 (aa int, bb char(8));
create table dw.sp_test2 (aa int, bb char(8));
insert into dw.sp_test values (1, '20090101');
insert into dw.sp_test values (2, '20090102');
insert into dw.sp_test values (3, '20090103');
insert into dw.sp_test values (4, '20090104');
insert into dw.sp_test values (5, '20090105');
insert into dw.sp_test values (6, '20090106');
insert into dw.sp_test values (7, '20090107');
insert into dw.sp_test values (8, '20090108');
insert into dw.sp_test values (9, '20090109');
insert into dw.sp_test values (10, '20090110');
create or replace function dw.samp_tran() RETURNS CHAR AS $$
begin
BEGIN ; -> 이게 안 되는군요
insert into sp_test1 select * from sp_test;
delete from sp_test;
insert into sp_test2 select * from sp_test1;
COMMIT; -> 역시 안 되는 군요
RETURN 'TRANS TEST';
end;
$$ LANGUAGE plpgsql;
고언을 부탁 드립니다. |