如何解决错误解析错误:语法错误,postgresql查询中出现意外“”?

时间:2019-04-12 17:13:17

标签: postgresql

此功能有问题,出现此错误:

  

解析错误:语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),   期望的标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

CREATE OR replace FUNCTION insertar_evento()
returns TRIGGER AS $$
BEGINIF(tg_op = 'INSERT') then
  INSERT INTO jur_eventos
              (
                          titulo,
                          descripcion,
                          fecha_inicial,
                          hora_inicial,
                          fecha_final,
                          hora_final,
                          recurrencia,
                          periodo,
                          login_creacion,
                          login_asignado,
                          jur_procesojuridicoid,
                          jur_abogados_id,
                          asignacion,
                          fecha_recordar,
                          realizado,
                          procesojuridicoxaudiencia_id
              )
              VALUES
              (
                          new.titulo,
                          new.descripcion_audiencia,
                          new.fecha_audiencia,
                          new.hora_audiencia,
                          new.fecha_audiencia,
                          new.hora_audiencia,
                          'N',
                          'A',
                          new.login_creacion,
                          new.login_asignado,
                          new.jur_procesojuridico_id,
                          new.jur_abogado_id,
                          false,
                          new.fecha_recordar,
                          false,
                          new.id
              );ELSIF(tg_op = 'UPDATE') THEN UPDATE jur_eventos
  SET    descripcion = new.descripcion_audiencia,
         fecha_inicial = new.fecha_audiencia,
         hora_inicial =new.hora_audiencia,
         fecha_final = new.fecha_audiencia,
         hora_final=new.hora_audiencia,
         login_creacion = new.login_creacion,
         login_asignado = new.login_asignado ,
         jur_procesojuridicoid = new.jur_procesojuridico_id,
         jur_abogados_id = new.jur_abogado_id,
         fecha_recordar = new.fecha_recordar,
         realizado = new.cita_cumplida
  WHERE  procesojuridicoxaudiencia_id = old.id;
  ENDIF;
  RETURN NULL;
END;
$$ language plpgsql;

CREATE TRIGGER insertar_evento_audiencia 
    after INSERT OR UPDATE
    ON jur_procesojuridicoxaudiencia FOR each row
    EXECUTE PROCEDURE
      insertar_evento(); 

1 个答案:

答案 0 :(得分:0)

可能是BEGINIF。它应该是两个词:BEGINIF。它们不是一个短语的一部分。

它也不是ENDIF,而是END IF。那是一个短语。