아래 함수가 성공적으로 컴파일되었습니다. 내가 select schema.funtion_name();
을 수행 할 때 함수가 실행되지만 테이블 schema.table_insert
에 삽입 된 행이 없습니다됩니다 : 900 개 이상의 000 레코드를 반환 cur_1 커서에서plpgsql 함수가 의도 한대로 데이터를 삽입하지 않습니다.
CREATE OR REPLACE FUNCTION schema.function_name()
RETURNS void AS
$BODY$
DECLARE cur_1 CURSOR FOR
Select col1 from schema.table1
union
select col1 from schema.table2
union
select col1 from schema.table3
union
select col1 from schema.table4;
BEGIN
FOR rec_i in cur_1 LOOP
insert into schema.table_insert (col1,col2,col3)
select col1,col2,col3
from schema.view
where col1=rec_i.col1
commit;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql STABLE
셀렉트. 단일 레코드에 대해 insert 문을 별도로 사용하면 레코드가 테이블에 삽입됩니다.
[그래서 당신은 당신의 대답을해야합니까?] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –