create or replace
PROCEDURE FCT_IMPORTA_SERV_PROD(
P_CDARVPRODINI IN VARCHAR2,
P_CDARVPRODFIM IN VARCHAR2,
P_NRORG IN NUMBER,
P_CDOPERADOR IN VARCHAR2)
AS
V_CDSERVORCA NUMBER;

BEGIN
   FOR C_PROD IN(
      SELECT CDPRODUTO, NMPRODUTO 
        FROM PRODUTO 
       WHERE (CDARVPROD BETWEEN P_CDARVPRODINI AND P_CDARVPRODFIM)
         AND NRORG = P_NRORG
         AND CDNVPRODUTO = (SELECT MAX(CDNVPRODUTO) 
                              FROM PRODUTO)
    ORDER BY CDPRODUTO)LOOP
   
      BEGIN
         SELECT MAX(CDSERVORCA)+1 AS CDSERVORCA
           INTO V_CDSERVORCA
           FROM FCT_SERVICOORCA
          WHERE NRORG = P_NRORG;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN
            V_CDSERVORCA := 1;
      END;
   
      INSERT INTO FCT_SERVICOORCA 
                  (CDSERVORCA,NMSERVORCA,CDPRODFATSERV,NRORG,DTINCLUSAO,DTULTATU,NRORGINCLUSAO,CDOPERINCLUSAO,NRORGULTATU,CDOPERULTATU,IDATIVO)
           VALUES (V_CDSERVORCA,C_PROD.NMPRODUTO,C_PROD.CDPRODUTO,P_NRORG,SYSDATE,SYSDATE,P_NRORG,P_CDOPERADOR,P_NRORG,P_CDOPERADOR,'S');   
   END LOOP;
   COMMIT;

END;
/