Al igual que Allan, no soy un experto en ODP. Sin embargo, sé que Oracle almacena el valor de retorno de una función como PARÁMETRO 0 en el Diccionario de datos. Los parámetros de entrada son 1 , 2 , etc.
Entonces, si declara y asigna el valor de retorno before asignas los parámetros de entrada, podría funcionar.