Un nimio detalle... te falta un Begin... end
Código SQL
[-]SET TERM ^ ;
CREATE PROCEDURE MUESTRA_CAJA (
RAZONSOCIAL INTEGER)
RETURNS (
DESCRIPCION VARCHAR(40),
FECHA DATE,
TIPO VARCHAR(20),
MONEDA VARCHAR(40),
INDICE NUMERIC(15,2),
MONTO NUMERIC(15,2),
MONTO_TOTAL INTEGER)
AS
DECLARE VARIABLE MONEDA_V SMALLINT;
DECLARE VARIABLE TIPO_V SMALLINT;
begin
for select mov_caja.descripcion_caj,mov_caja.fecha_caj,
mov_caja.tipo_caj,mov_caja.moneda_caj,
mov_caja.indice_caj, mov_caja.monto_caj,
(mov_caja.monto_caj * mov_caja.indice_caj)
from mov_caja
where mov_caja.entidad_caj=:razonsocial
into :descripcion, :fecha, :tipo_v, :moneda_v, :indice,
:monto, :monto_total do
begin // aqui
if (:tipo_v=1) then tipo='Entrada'
else
tipo := '¿que pongo aqui?' //
suspend;
end; // y aqui
end
^
SET TERM ; ^
GRANT SELECT ON MOV_CAJA TO PROCEDURE MUESTRA_CAJA;
GRANT EXECUTE ON PROCEDURE MUESTRA_CAJA TO SYSDBA;
Saludos