Hola Pablo!
Tan sólo para descartar algunas posibilidades, podrías decirnos como invocas al procedimiento.
Es decir, como se trata de un ciclo
FOR SELECT lo correcto es llamarlo con la sentencia
SELECT, pero si lo estás invocando con las sentencia
EXECUTE PROCEDURE entonces al encontrar la sentencia
SUSPEND dejará de funcionar y no procesará todos los registros de la consulta.
Lo correcto sería algio así:
Código SQL
[-]
SELECT * FROM nombre_procedimiento(param1, param2, etc);
Bueno, te repito que sólo es un intento por descartar posibilidades hasta encontrar el error.
Un saludo.