O seguinte comando não deveria retornar 0 se o o retorno da sp get_valor_numerico para VALOR fosse NULL, pois é o campo QUARTO continua com NULL select coalesce(valor, 0) from get_valor_numerico(CODIGO, IMOVEL) into :QUARTO;