Thread: loop plpgsql recordset variable
Hello, How can I loop a PL/PgSQL recorset variable? The example: DECLARE v_tmp_regi RECORD; v_tmp RECORD; BEGIN SELECT * INTO v_tmp_regi FROM sulyozas_futamido sf WHERE sf.termekfajta_id= a_termekfajta_id AND sf.marka_id=a_marka_id; DELETE FROM sulyozas_futamido; FOR v_tmp IN v_tmp_regi LOOP --I would like to work here with the old recordset! END LOOP; ^^^^^^^^^^^^^^ -- This is not working !!! END;
On 1/25/07, Furesz Peter <spam@srv.hu> wrote: > How can I loop a PL/PgSQL recorset variable? The example: > > DECLARE > v_tmp_regi RECORD; > v_tmp RECORD; > BEGIN > SELECT * INTO v_tmp_regi FROM sulyozas_futamido sf WHERE > sf.termekfajta_id= > a_termekfajta_id AND sf.marka_id=a_marka_id; > > DELETE FROM sulyozas_futamido; > > FOR v_tmp IN v_tmp_regi LOOP > --I would like to work here with the old recordset! > END LOOP; > ^^^^^^^^^^^^^^ > -- This is not working !!! > > END; I think what you want to do is this: BEGIN SELECT * INTO v_tmp_regi FROM sulyozas_futamido sf WHERE sf.termekfajta_id= a_termekfajta_id AND sf.marka_id=a_marka_id; DELETE FROM sulyozas_futamido; FOR v_temp_regi IN SELECT * FROM sulyozas_futamido sf WHERE sf.termekfajta_id = a_termekfajta_id AND sf.marka_id=a_marka_id LOOP END LOOP; FOR v_tmp IN v_tmp_regi LOOP --I would like to work here with the old recordset! END LOOP; ^^^^^^^^^^^^^^ END;