SET ECHO ON
SET DEFINE ON
column fcltlogfile new_value fcltlogfile NOPRINT;
select UPPER(USER) || '_AAVL#28309_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as fcltlogfile from dual;
spool &fcltlogfile
SET DEFINE OFF

DECLARE
   CURSOR c
   IS
        SELECT fin_factuur_key
          FROM fin_factuurregel
      GROUP BY fin_factuur_key, fin_factuurregel_nr
        HAVING COUNT (fin_factuur_key) > 1;

   CURSOR c_r (c_factuur_key NUMBER)
   IS
        SELECT fin_factuurregel_key
          FROM fin_factuurregel
         WHERE fin_factuur_key = c_factuur_key
      ORDER BY fin_factuurregel_key;

   i   NUMBER;
BEGIN
   FOR rec IN c
   LOOP
      BEGIN
         DBMS_OUTPUT.put_line ('factuur: ' || rec.fin_factuur_key);
         i := 1;

         FOR rec_r IN c_r (rec.fin_factuur_key)
         LOOP
            BEGIN
               DBMS_OUTPUT.put_line(   'factuurregel_key: '
                                    || rec_r.fin_factuurregel_key
                                    || ' nieuw nummer: '
                                    || i);

               UPDATE fin_factuurregel
                  SET fin_factuurregel_nr = i
                WHERE fin_factuurregel_key = rec_r.fin_factuurregel_key;

               i := i + 1;
            END;
         END LOOP;
      END;
   END LOOP;
   COMMIT;
END;
/


BEGIN adm.systrackscriptid('$Id$'); END;
/

COMMIT;
SPOOL OFF
