CREATE OR REPLACE FUNCTION APURA_PRECOBASE (P_CDPRECOBASE ITEMPREBASE.CDPRECOBASE%TYPE,
                                            P_CDPRODUTO   ITEMPREBASE.CDPRODUTO%TYPE,
                                            P_DATA        IN DATE)
    RETURN NUMBER
    IS V_VRITEPREBASE DOUBLE PRECISION;
BEGIN
   V_VRITEPREBASE := 0;
   SELECT NVL(MAX(VRITEPREBASE), 0)
     INTO V_VRITEPREBASE
     FROM ITEMPREBASE
    WHERE CDPRECOBASE = P_CDPRECOBASE
      AND CDPRODUTO   = P_CDPRODUTO
      AND DTINIVALIPB = (SELECT MAX(DTINIVALIPB)
                           FROM ITEMPREBASE
                          WHERE CDPRECOBASE = P_CDPRECOBASE
                            AND CDPRODUTO   = P_CDPRODUTO)
      AND DTFIMVALIPB = (SELECT MAX(DTFIMVALIPB)
                           FROM ITEMPREBASE
                          WHERE CDPRECOBASE = P_CDPRECOBASE
                            AND CDPRODUTO   = P_CDPRODUTO);
   RETURN V_VRITEPREBASE;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('APURA_PRECOBASE','5.85.xxx'); END;
/