RE: Error al Crear Function para trigger

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: Raw Message | Whole Thread | 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/

Browse pgsql-es-ayuda by date

  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