CREATE OR REPLACE PROCEDURE INSERT_PRODCOMPCOMPL IS
BEGIN 
   LOOP
      INSERT INTO PRODCOMPCOMPL (NRPRODCOMPCOMPL, CDOPERADOR, CDPRODUTO, CDPRODCOMPL)
      SELECT SEQ_NRPRODCOMPCOMPL.NEXTVAL, PF.CDOPERADOR, PI.CDPRODUTO, PC.CDPRODUTO CDPRODCOMPL
        FROM PRODCOMP PF INNER JOIN PRODUTO PI ON PF.CDPRODUTO = PI.CDPRODUTO
                         INNER JOIN PRODUTO PC ON PC.CDARVPROD LIKE PI.CDARVPROD || '%'
       WHERE PC.CDPRODESTO IS NOT NULL
         AND NOT EXISTS (SELECT 1
                           FROM PRODCOMPCOMPL
                          WHERE PRODCOMPCOMPL.CDPRODCOMPL = PC.CDPRODUTO
                            AND PRODCOMPCOMPL.CDOPERADOR  = PF.CDOPERADOR);
         
      EXIT WHEN SQL%ROWCOUNT = 0;
      COMMIT;
   END LOOP;
   COMMIT;
END INSERT_PRODCOMPCOMPL;
/
