Hola...
Luis M., ¿por qué haces tu procedimiento de esa forma?
Eso que tu haces lo puedes lograr así:
Código SQL
[-]
SET TERM ^ ;
CREATE OR ALTER PROCEDURE ULTIMO_RECIBO (
anyo varchar(2))
returns (
ultimo integer)
as
begin
SELECT max(NUMERO) FROM RECIBOS where ANYO = :anyo
INTO :ultimo;
suspend;
end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE ULTIMO_RECIBO TO SYSDBA;
Y no vas a recibir el error que mencionas...
Saludos...