일단.. ^-^;;
create table test_table
(
key1 integer,
key2 integer,
key3 integer
);
CREATE OR REPLACE FUNCTION test_function()
RETURNS SETOF test_table AS
$BODY$
DECLARE
_Ret RECORD;
BEGIN
FOR _Ret IN
Select * From test_table
LOOP
RETURN NEXT _Ret;
END LOOP;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
insert into test_table values( 1, 1, 1 );
insert into test_table values( 2, 2, 2 );
insert into test_table values( 3, 3, 3 );
insert into test_table values( 4, 4, 4 );
alter table test_table drop column key3;
select * from test_function();
-------------------------------------
ERROR: wrong record type supplied in RETURN NEXT
CONTEXT: PL/pgSQL function "test_function" line 7 at RETURN NEXT
현재 쓰는 버전은 8.3 이지만.. 버전에 관계없이 발생하는거 같습니다.
Add Column 일때는 이런 문제가 없는데요 drop column 일때만 생기구요
혹시 해결 방법을 알고 계신분 >.<;;; |