Обсуждение: calling EXECUTE on any exception

Поиск
Список
Период
Сортировка

calling EXECUTE on any exception

От
gherzig@fmed.uba.ar
Дата:
Hi all: I want to call some FUNCTION , let say
exception_hanler(Exception_code) for any exception in plsql functions. I
give some pseudo code to explain myself better:

CREATE FUNCION something(...) returns ...
AS
'
...

EXCEPTION WHEN OTHER THEN   EXECUTE exception_handler(Exception_code)
...
'

and let exception_handler() function make all the work and returns some
value for mi program...Now, the actual question...how do i get that
error_code (or code_name, whatever i can get) generated in the something()
function to be proccesed by the exception_handler() function?

Im talking of 8.0 plsql language by the way.

Thanks in advance!
-- 
Gerardo Herzig
Direccion General de Organizacion y Sistemas
Facultad de Medicina

U.B.A.


Re: calling EXECUTE on any exception

От
Michael Fuhr
Дата:
On Fri, Jul 29, 2005 at 10:36:52AM -0300, gherzig@fmed.uba.ar wrote:
> EXCEPTION
>   WHEN OTHER THEN
>     EXECUTE exception_handler(Exception_code)
>
> how do i get that error_code (or code_name, whatever i can get)
> generated in the something() function to be proccesed by the
> exception_handler() function?

I don't think you can do this in released versions of PostgreSQL.
In 8.1 you'll be able to use SQLSTATE to get the error code and
SQLERRM to get the error message.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


Re: calling EXECUTE on any exception

От
gherzig@fmed.uba.ar
Дата:
Oh...to bad...Thank you Michael!
Did someone know if it can be acomplished in pypgsql?

Thanks againg falks.
Gerardo
> On Fri, Jul 29, 2005 at 10:36:52AM -0300, gherzig@fmed.uba.ar wrote:
>> EXCEPTION
>>   WHEN OTHER THEN
>>     EXECUTE exception_handler(Exception_code)
>>
>> how do i get that error_code (or code_name, whatever i can get)
>> generated in the something() function to be proccesed by the
>> exception_handler() function?
>
> I don't think you can do this in released versions of PostgreSQL.
> In 8.1 you'll be able to use SQLSTATE to get the error code and
> SQLERRM to get the error message.
>
> --
> Michael Fuhr
> http://www.fuhr.org/~mfuhr/
>
>