CREATE OR REPLACE FUNCTION CONT_FATCONVERSAO_SPED(
   P_SGUNIDADE   IN PRODUTO.SGUNIDADE%TYPE,
   P_VRFATOCONV IN PRODUTO.VRFATOCONV%TYPE) RETURN VARCHAR
AS
  V_CONTADOR VARCHAR2(10);
BEGIN
   SELECT MAX(CONTADOR)
     INTO V_CONTADOR
     FROM (SELECT T.CDCAMPO3 AS CONTADOR
             FROM TMP_REGDADOSSPED T
            WHERE T.CDREGISTRO = '0190'
              AND T.CDCAMPO1   = P_SGUNIDADE
              AND T.CDCAMPO2   = P_VRFATOCONV
           UNION
           SELECT TO_CHAR(MAX(TO_NUMBER(NVL(T.CDCAMPO3,'0'))+1)) AS CONTADOR
             FROM TMP_REGDADOSSPED T
            WHERE T.CDREGISTRO = '0190'
              AND T.CDCAMPO1   = P_SGUNIDADE
              AND T.CDCAMPO2  <> P_VRFATOCONV
              AND NOT EXISTS (SELECT * FROM TMP_REGDADOSSPED R
                               WHERE R.CDREGISTRO = '0190'
                                 AND R.CDCAMPO1   = P_SGUNIDADE
                                 AND R.CDCAMPO2   = P_VRFATOCONV));
   RETURN V_CONTADOR;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('CONT_FATCONVERSAO_SPED','6.05.000'); END;
/
