아래와 같은 테스트용 FUNCTION이 있습니다.
NUMERIC 배열에 값을 담아서 리턴하려고 하는데.
배열에 값을 담는 부분이 잘못되었는지.
담을 때 값을 찍어보면 NULL로 아무값이 들어가지가 않습니다.
예로)t_modifiedTimes[1] := 2;
어느 부분이 잘못되었는지...
-------------------------------------------------------
CREATE OR REPLACE FUNCTION arr_test()
RETURNS NUMERIC[] AS $BODY$
DECLARE
v_count NUMERIC default 0;
v_dayIndex NUMERIC default 0;
t_modifiedTimes NUMERIC[];
v_testval NUMERIC default 0;
....
BEGIN
....
for v_count in 1..5 loop
v_dayIndex := v_dayIndex + 1;
t_modifiedTimes[v_dayIndex ] := v_count;
v_testval := t_modifiedTimes[v_dayIndex ] ;
-------------->배열에 저장된 값 임시저장
raise exception '임의에러생성 t_modifiedTimes[v_dayIndex
]=', v_testval ;
-------------->강제적으로 exception 발생시킴
end loop;
....
return t_modifiedTimes;
END;
$BODY$ LANGUAGE plpgsql;
|