From: | "Zuleima Lara" <zlara(at)interactivedata(dot)com(dot)ve> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Exceptions |
Date: | 2006-06-06 01:11:15 |
Message-ID: | 000a01c68906$1de67750$2cee90c1@sky |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, Buenas noches...
tengo un problemita, necesito manejar excepciones propias y no se como declararlas.
En la ayuda encontre esto:
[ DECLARE
declarations ]
BEGIN
statements
EXCEPTION
WHEN condition [ OR condition ... ] THEN
handler_statements
[ WHEN condition [ OR condition ... ] THEN
handler_statements
... ]
END;
Lo que entendi es que "condition" es lo que pasa en cuando ocurre la excepcion, pero yo coloco cualquier cosa que no sea alguno de los "PostgreSQL Error Codes" y no puedo.
Les muestro un ejemplo:
CREATE FUNCTION prueba(varchar) RETURN VARCHAR AS
$BODY$
DECLARE
codigo varchar := $1;
origen varchar;
numero varchar;
posicion integer;
long integer;
trans varchar[];
BEGIN
BEGIN
posicion := position('-' in codigo);
long := length(codigo);
EXCEPTION WHEN (posicion <= 0) THEN
trans[1] := 'ERROR';
END IF;
IF(posicion > 0) THEN
origen := substring(codigo from 1 for (posicion - 1));
numero := substring(codigo from (posicion + 1) for long);
trans[1] := origen;
trans[2] := numero;
RETURN trans;
END;
$$
LANGUAGE 'plpgsql' ;
----
Bueno lo que quisiera saber es si eso se puede, y en caso de que no se pueda como podria hacer para que no me ejecute las sentencias (lo que coloque fue solo un ejemplo, pero yo tengo inserciones en otras funciones y no puedo permitir que se ejecuten en caso de que ocurra la condicion de error) pero que no rompa y yo pueda tratarla o manejarla y entonces asi mi interfaz no muetre la excepcion sino un codigo de error.
Gracias por lo que puedan hacer.
Zuleima Lara
From | Date | Subject | |
---|---|---|---|
Next Message | Peine Basto | 2006-06-06 11:34:02 | Cambiar Caracteres En Toda La Base de Datos |
Previous Message | Jaime Casanova | 2006-06-06 00:39:42 | Re: Dominios |