pg v12에서 프로시저 내부에 세션변수를 설정하려고 했습니다만
insert 에는 변수값이 제대로 들어가는 반면,
set session 부분에서는 내부에서 선언한 변수값이 들어가지 않았습니다.
-------------------------------------------------------------------------------------------------------------
create table test2 (no serial, c1 numeric(10), c2 numeric(10));
insert into test2(c1,c2) values(generate_series(1,10), generate_series(101,110));
create or replace procedure abc()
language plpgsql as $$
declare
i numeric(8) := 0;
v_c1 := coalesce(111::numeric(10),0);
insert into test2 (c1) values(v_c1);
set session test2.vc1 = v_c1;
end;
$$;
begin;
call abc();
select * from test2; : v_c1 변수 값(111)으로 insert
select current_setting('test2.vc1'); : 111 이 아닌 텍스트 그대로(v_c1) 입력 됨
---------------------------------------------------------------------------------------------------------
어느 부분이 잘못된 걸까요? 이퀄(=) 구문엔 변수가 안먹히는건지요..?
의견을 부탁드립니다.
|