Hola
En vez de usar un procedimiento, que lo unico que hace es ejecutarse sin devolverte nada, deberias crear una función:
Código SQL
[-]
Create or repalce function "Mifuncion" as
Begin
(Codigo de la función)
Result := Resultado;
End;
/
Esto en principio te devuelve un solo registro, creo, si no es asi por favor que me corrija alguien ya que me gustaria saber como, que las funciones no pueden devolver un grupo de registros.
En este caso puedes crearte un procedimiento que lo que haga es añadirte a una tabla temporal lo que necesitas y tirar de los registros de la tabla en cuestion
Salu2