Thread: loop plpgsql recordset variable

loop plpgsql recordset variable

From
"Furesz Peter"
Date:
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;

Re: loop plpgsql recordset variable

From
"Merlin Moncure"
Date:
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;