Erro na criação de função no Oracle

Bom dia a todos, estou tentando montar uma função, porém o Oracle está acusando erro no return, já dei uma olha mas não consegui identificar o problema.

CREATE OR REPLACE FUNCTION TESTE.PRODUCAO(P_UNICO INTEGER, P_DTFIM DATE, P_DTINICIO DATE )
    RETURN BOOLEAN
    IS  
        P_QTDE numbER;
    BEGIN
        BEGIN
             SELECT SUM(QUANTIDADE) INTO P_QTDE
             FROM AD_APONTAPRODUCAO APP
             WHERE UNICO =P_UNICO AND APP.DTPROD BETWEEN P_DTINICIO AND P_DTFIM
                   ;
             
            
        END;
        RETURN P_QTDE ;
    END;

O retorno é do tipo NUMBER e não BOOLEAN.

Fora isso, poste a mensagem de erro.

Se o return é boolean, por que tenta retornar um number?