| From: | Esteban Osorio <eosorio(at)economia(dot)cl> | 
|---|---|
| To: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | RE: Error al Crear Function para trigger | 
| Date: | 2006-09-01 16:11:26 | 
| Message-ID: | 146DD1939016834EB2265A13EAA6A9230286A180@correo.minecon.cl | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Ni idea de cual será tu problema pero por si te sirve te mando el código de
un trigger que me funciona perfecto.
CREATE OR REPLACE FUNCTION comprueba_mail_empleado() RETURNS trigger AS '
DECLARE
fila integer;
BEGIN
            select into fila count(id_empleado) from directorio where
upper(trim(e_mail)) = upper(trim(NEW.e_mail));
if fila > 0 then
                        raise exception ''El mail otorgado al nuevo empleado
(%) ha sido asignado previamente a otro usuario.'', NEW.e_mail;
end if;
RETURN NEW;
END;
' LANGUAGE 'plpgsql' VOLATILE;
--
Saludos a la lista,
Esteban Osorio.
_____
De: WILLIAM PARRA [mailto:wilparra(at)yahoo(dot)com] 
Enviado el: Viernes, 01 de Septiembre de 2006 10:27
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] Error al Crear Function para trigger
Buenos días compañeros de lista.
Tengo un problema al crear una función para un trigger. me saca un error
como el siguiente:
 ERROR: unterminated dollar-quoted string at or near "$inserta_empleado$
    BEGIN
        
        IF NEW.nombre_empleado IS NULL THEN
            RAISE EXCEPTION 'El nombre del Empleado no puede ser Nulo'"
 Line: 1 
Este es el codigo de creacion de la funcion....
CREATE FUNCTION inserta_empleado() RETURNS trigger AS $inserta_empleado$
    BEGIN
        -- Check that empname and salary are given
        IF NEW.nombre_empleado IS NULL THEN
            RAISE EXCEPTION 'El nombre del Empleado no puede ser Nulo';
        END IF;
        IF NEW.salario IS NULL THEN
            RAISE EXCEPTION '% No puede tener salario nulo',
NEW.nombre_empleado;
        END IF;
        -- Who works for us when she must pay for it?
        IF NEW.salario < 0 THEN
            RAISE EXCEPTION '% No puede tener salario negativo',
NEW.nombre_empleado;
        END IF;
        -- Remember who changed the payroll when
        NEW.fecha_actualiza := 'now';
        NEW.usuario_actualiza := current_user;
        RETURN NEW;
    END;
$inserta_empleado$ LANGUAGE plpgsql;
Y por si las dudas... este es el codigo de creacion de la tabla....
CREATE TABLE empleado (
    nombre_empleado text,
    salario integer,
    fecha_actualiza timestamp,
    usuario_actualiza text
)
Una cosa más.... Tengo montada una version postgresql 8.0 sobre un Win 2000.
La base de datos esta creada con codificacion Latin 1
Gracias por su colaboración....
Saludos,
William Enrique Parra Alba
 __________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.espanol.yahoo.com/ 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Carlos Andres Pizo | 2006-09-01 16:51:38 | Insercion tabla | 
| Previous Message | WILLIAM PARRA | 2006-09-01 16:01:21 | Re: Error al Crear Function para trigger |