Hola a todos en FDW, tengo un problema con una funcion que llamo en un trigger,
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION email(valor CHAR(5)) RETURNS RECORD AS
$BODY$
DECLARE
correo RECORD;
BEGIN
SELECT INTO correo tpersona.per_correo para, 'Actividad Administrativa' asunto,
'Saludos, por medio de la presente se le notifica que hoy ' || to_char(now(),'DD/MM/YYYY') || ' le fue asignado(a) a la actividad ' || quote_literal(act_nombre) || ' en el ambiente ' || amb_nombre cuerpo
FROM tpersona
INNER JOIN tdetalle_actividad_ad ON tpersona.cedula = tdetalle_actividad_ad.cedula
INNER JOIN tactividades_administrativas ON tdetalle_actividad_ad.cod_actividad = tactividades_administrativas.cod_actividad
INNER JOIN tambiente ON tdetalle_actividad_ad.cod_ambiente = tambiente.cod_ambiente WHERE tdetalle_actividad_ad.cod_detalle_actividad = quote_literal($1);
RETURN correo;
END;
$BODY$
LANGUAGE 'plpgsql'
CREATE OR REPLACE FUNCTION llamar_email()
RETURNS TRIGGER AS
$BODY$
DECLARE parametro TEXT;
BEGIN
parametro := NEW.cod_detalle_actividad;
EXECUTE email(parametro);
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql'
CREATE TRIGGER Enviar_correo AFTER INSERT OR UPDATE ON tdetalle_actividad_ad
FOR EACH ROW
EXECUTE PROCEDURE llamar_email();
En base lo que quiero que haga es luego de insertar un registro, me busque la informacion necesaria para enviar un emal (en el select tengo los datos 'para', 'asunto' y 'cuerpo')
los querys funcionan pero al insertar me envia el siguiente error de sintaxis
Código SQL:
Ver originalERROR: syntax error at OR near ","
LINE 1: (,,)
^
QUERY: (,,)
CONTEXT: PL/pgSQL FUNCTION llamar_email() line 5 at EXECUTE statement
espero me puedan ayudar, gracias!!