Ajuda com Stored Procedure em Firebird

Olá, bom dia, estou iniciando agora nesse quesito de Stored Procedure em banco, o que acontece é que entrei em uma empresa onde o sistema todo é amarrado por transações onde só se pode efetuar alterações no banco via Stored Procedure, bem, estou criando uma, porém ela da um erro de que alguma coluna não existe na tabela, porém estão todas de acordo, acredito ser algum erro na estrutura que estou fazendo, segue o codigo:

CREATE PROCEDURE INSERT_UPDATE_CHECAMESA (
    pidmesa integer,
    pendereco varchar(15),
    pstatus varchar(1))
as
begin
  FOR
    SELECT ch.Id_Movimento,  ch.Endereco_Ip, ch.Status
    FROM CHECAMESA ch
    INTO :pIdMesa, :pEndereco, :pStatus
  DO
    BEGIN
      if (CHECAMESA.Id_Movimento = :pIdMesa) then
      BEGIN
        UPDATE CHECAMESA SET CHECAMESA.Endereco_Ip = :pEndereco,
          CHECAMESA.Status = :pStatus
        WHERE CHECAMESA.Id_Movimento = :pIdMesa;
      END
      if (CHECAMESA.Id_Movimento <> :pIdMesa) then
      BEGIN
        INSERT INTO CHECAMESA (CHECAMESA.Id_Movimento, CHECAMESA.Endereco_Ip,
         CHECAMESA.Status)
        VALUES (:pIdMesa, :pEndereco, :pStatus);
      END
    END
  suspend;
end

Ajudaria se você postasse a mensagem de erro exatamente como aparece pra você e a estrutura da tabela em questão. Diga também qual ferramenta você está usando para criar a Procedure, pois pode ser necessário a utilização de set term para mudar o caractere de finalização de ; (ponto e vírgula) para alguma outra coisa.

Abraço.