From: | Julio Rivero <jcrmlima(at)gmail(dot)com> |
---|---|
To: | Lista Ayuda PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Ayuda sobre EXCEPTION en Funciones |
Date: | 2005-08-15 18:49:40 |
Message-ID: | d34a12b605081511492bb38e13@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos:
Quisiera saber en que parte del manual indica los tipos de errores cuando
ejecuto una transacción, por ejemplo en Oracle podía utilizar OTHERS,
TOO_MANY_ROWS, NO_DATA_FOUND, en PostgreSql cual puedo utilizar?, o
cuales?... aquí esta mi función, quisiera que me indiquen por favor que
error puedo validar:
CREATE OR REPLACE FUNCTION dbtest.fu_nueva_oferta(text, date, date, text)
RETURNS "int8" AS
$BODY$
DECLARE
vc_descripcion ALIAS FOR $1;
vd_oferta ALIAS FOR $2;
vd_limite ALIAS FOR $3;
vc_status ALIAS FOR $4;
vi_cod_oferta int8;
BEGIN
-- retorna -1 cuando ha ocurrido algún error
-- retorna entero positivo con el código de la nueva oferta
BEGIN
select max(cod_oferta)
into vi_cod_oferta
from dbtest.oferta;
EXCEPTION
WHEN *-- HERE --* THEN
vi_cod_oferta := 0;
END;
IF vi_cod_oferta >= 0 THEN
vi_cod_oferta := vi_cod_oferta + 1;
BEGIN
insert into dbtest.oferta
(cod_oferta, descripcion, fec_oferta, fec_limite, status_oferta)
values
(vi_cod_oferta, vc_descripcion, vd_oferta, vd_limite, vc_status );
EXCEPTION
WHEN *-- HERE --* THEN
vi_cod_oferta := -1;
END
END IF;
RETURN vi_cod_oferta;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION dbtest.fu_nueva_oferta(text, date, date, text) OWNER TO
system;
Gracias de antemano!!!
--
Saludos
Att,
Julio Rivero
Movil: 98817321
From | Date | Subject | |
---|---|---|---|
Next Message | Horacio Miranda | 2005-08-15 19:05:57 | Re: Necesito un libro. |
Previous Message | Pablo Braulio | 2005-08-15 18:46:44 | Re: No me deja crear la tabla. |