spool conn#665.log

commit;

DECLARE

  CURSOR c_cursor
     IS
        SELECT  d.ins_deel_key,ins_srtdeel_key, ins_deel_omschrijving, SUBSTR(ins_deel_omschrijving,2,8) ins_deel_omschrijving_new
        FROM ins_deel d
        WHERE 1=1
        AND d.ins_deel_verwijder IS NULL
        AND ins_srtdeel_key = 43401
     		AND fac.safe_to_number (SUBSTR (ins_deel_omschrijving, 2, 8)) > 0
	 			AND LENGTH(SUBSTR (ins_deel_omschrijving, 2, 8)) = 8
        ORDER BY 3;

  next_record                   c_cursor%ROWTYPE;

  oracle_err_num                NUMBER;
  oracle_err_mes                VARCHAR2 (200);
  v_errormsg                    VARCHAR2 (1024);
  v_teller                      INTEGER;

  c_halte_code                  INTEGER             := 501;
  c_commit_buffer               INTEGER             := 1000;
  c_zero                        INTEGER             := 0;

BEGIN

  v_teller := c_zero;

  FOR next_record IN c_cursor LOOP

    BEGIN

      v_teller := v_teller + 1;
      
      v_errormsg := 'Verwijder eventueel aanwezig flexibel kenmerk';
      delete 
      from 		ins_kenmerkdeel 
      where 	ins_kenmerkdeel_verwijder is null 
      and 		ins_kenmerk_key = c_halte_code
      and 		ins_deel_key = next_record.ins_deel_key;

      -- c_halte_code
      v_errormsg := '--C-- flexprops Halte code';

      INSERT INTO ins_kenmerkdeel
      (      ins_kenmerk_key
      ,      ins_deel_Key
      ,      ins_kenmerkdeel_waarde)
      VALUES(c_Halte_code
      ,      next_record.ins_deel_key
      ,      next_record.ins_deel_omschrijving_new);

      IF (v_teller > c_commit_buffer) THEN

        v_teller := c_zero;
        commit;

      END IF;

      EXCEPTION
           WHEN OTHERS
           THEN

              oracle_err_num := SQLCODE;
              oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
              v_errormsg :=
                 '(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
                 || ')';

              fac.imp_writelog ('CONN#665',
                                'Halte codes toevoegen',
                                'E',
                                v_errormsg,
                                to_char(next_record.ins_deel_key)
                               );

    END;

  END LOOP;

  commit;

END;
/


spool off

commit;
