Código SQL:
Ver original
CREATE 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 original
ERROR: syntax error at OR near "," LINE 1: (,,) ^ QUERY: (,,) CONTEXT: PL/pgSQL FUNCTION llamar_email() line 5 at EXECUTE statement
espero me puedan ayudar, gracias!!