CREATE OR REPLACE FUNCTION insert_payjournalrec_arch(v_start_id IN NUMBER, count_record IN NUMBER) RETURN BOOLEAN AS save_success BOOLEAN; BEGIN DECLARE j INT; cnt INT; BEGIN dbms_output.enable; j := 0; cnt := 0; FOR i IN (SELECT id FROM ipsh.payjournalrec pay WHERE pay.id <= v_start_id) LOOP j := j + 1; cnt := cnt + 1; INSERT INTO payjournalrec_arch (SELECT * FROM payjournalrec WHERE id = i.id); DELETE ipsh.payjournalrec pay_inn WHERE pay_inn.id = i.id; IF j > count_record THEN COMMIT; dbms_output.put_line('PROCESS ' || to_char(cnt) || ' RECORDS'); j := 0; END IF; END LOOP; IF (j > 0) THEN dbms_output.put_line('PROCESS ' || to_char(cnt) || ' RECORDS'); COMMIT; END IF; END; END; /