Exceptions

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

Browse pgsql-es-ayuda by date

  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