CREATE OR REPLACE FUNCTION CLAS_PROD_CODTRIB
   (P_CDEMPRESA   IN EMPRESA.CDEMPRESA%TYPE,
    P_CDINSCMUNI  IN NOTAFISCAL.CDINSCMUNI%TYPE,
    P_CDARVPROD   IN PRODUTO.CDARVPROD%TYPE) RETURN VARCHAR
AS
   V_CDCLASSPROD  VARCHAR2(20);
BEGIN

 SELECT CDCLASSERVPADR
   INTO V_CDCLASSPROD
   FROM CODTRIBPRODPADR CO, PRODUTO P, (SELECT MAX(P.CDARVPROD) AS MAXPROD, COUNT(*)
                                          FROM CODTRIBPRODPADR C, PRODUTO P
                                         WHERE C.CDPRODUTO = P.CDPRODUTO(+)
                                           AND INSTR(P_CDARVPROD, NVL(RTRIM(P.CDARVPROD), P_CDARVPROD)) = 1) M
  WHERE CO.CDPRODUTO  = P.CDPRODUTO
    AND P.CDARVPROD   = M.MAXPROD
    AND CO.CDEMPRESA  = P_CDEMPRESA
    AND CO.CDINSCMUNI = P_CDINSCMUNI;

    RETURN(V_CDCLASSPROD);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('CLAS_PROD_CODTRIB','5.70.000'); END;
/