Como Allan, não sou especialista em ODP. No entanto, sei que o Oracle armazena o valor de retorno de uma função como PARÂMETRO
0
no Dicionário de Dados. Os parâmetros de entrada são 1
, 2
, etc Então, se você declarar e atribuir o valor de retorno antes você atribui os parâmetros de entrada que podem funcionar.