From: | "Milton Galo Patricio" <minoztro(at)gmail(dot)com> |
---|---|
To: | Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | [funciones, bloques y exception] las consultas serán ignoradas hasta el final del bloque |
Date: | 2007-01-12 14:21:10 |
Message-ID: | 172699c50701120621yf1c356m5677eb5856ed6894@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
hola lista:
Tengo un problema al momento de tratar de levantar una exception
desde un trigger que tengo asignado al momento antes de insertar o
modificar un registro. La idea es la siguiente:
Tengo la siguiente función:
CREATE OR REPLACE FUNCTION cerrar_turno(fecha date, codigo_sucusal
"varchar", id_usuario "varchar")
RETURNS void AS
$BODY$BEGIN
insert into servidor_ventas_realizadas select $3, $1,
sum(total_involucra) from cierre_turno_total;
EXCEPTION
when others THEN
RAISE EXCEPTION '%',SQLERRM;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Esta función lo que hace es un simple insert a la tabla
servidor_ventas_realizadas, a esta tabla le tengo asignado el
siguiente trigger:
CREATE OR REPLACE FUNCTION cierre_caja_verificacion()
RETURNS "trigger" AS
$BODY$BEGIN
IF NEW.total_venta IS NULL THEN
RAISE EXCEPTION 'No puede cerrar turno, debe tener al menos un
producto vendido';
END IF;
RETURN NEW;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER cierre_caja_verificacion
BEFORE INSERT OR UPDATE
ON servidor_ventas_realizadas
FOR EACH ROW
EXECUTE PROCEDURE cierre_caja_verificacion();
Ahora bien....cuando la funcion cerrar_turno inserta como NULL el
campo total_venta, la exception se levanta bien, pero cuando
nuevamente llamo a la funcion cerrar_turno me sale el siguiente error:
ERROR: transacción abortada, las consultas serán ignoradas hasta el
final del bloque de la transacción.
Después llamo nuevamente a la funcion cerrar_turno y me muestra bien
el mensaje de exception, pero nuevamente la llamo y me muestra el
mismo error.
En realidad no entiendo mucho en que parte me estoy equivocando, alguna idea?..
Agradeciendo vuestra ayuda,
--
Milton Inostroza Aguilera
From | Date | Subject | |
---|---|---|---|
Next Message | Rodrigo Gil Giuliano | 2007-01-12 14:49:22 | dimensiones de un array |
Previous Message | Fernando Aguada | 2007-01-12 13:54:01 | Diferencias entre el driver ODBC Postgresql 7.03 y el Driver ODBC Postgresql ANSI 8.02 |