Re: Personalizar SQLERRM

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Jorge Medina <jorge(at)bsdchile(dot)cl>
Cc: Pedro PG <pedropg(at)outlook(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Personalizar SQLERRM
Date: 2014-02-01 17:34:00
Message-ID: CAJKUy5j3iMUMqkPV0BeywpjJa8B3qC-EhEz4k87MGsvQ30zAhA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2014-02-01 Jorge Medina <jorge(at)bsdchile(dot)cl>:
>
> 2014-02-01 Jaime Casanova <jaime(at)2ndquadrant(dot)com>
>
>> 2014-01-31 Pedro PG <pedropg(at)outlook(dot)com>:
>> >
>> > llave duplicada viola restricción de unicidad «cuk__venta___comprobante»
>> >
>> > Lo que deseo saber es: como es que se arma este mensaje, de que tabla
>> > saca
>> > el texto llave duplicada viola restricción de unicidad,
>>
>> Saludos,
>>
>> El mensaje no sale de una tabla sino que esta en el código fuente de
>> PostgreSQL:
>> el mensaje original está en src/backend/access/nbtree/nbtinsert.c
>> (línea 392) y la traducción al español en src/backend/po/es.po (línea
>> 467)
>>
>> > debo hacer una
>> > función que registre al detalle las excepciones.
>> >
>> > PD: No deseo personalizar el mensaje con la instrucción:
>> >
>> > RAISE EXCEPTION USING ERRCODE = "etc", MESSAGE = "etc";
>> >
>>
>> por que?
>
>
> no es por nada, pero entiendo que «cuk__venta___comprobante» es el nombre de
> una constrain que afecta a dos tablas específicamente y ahí ya tienes tu
> información.
>

pero no puedes basar tu decision en el nombre del constraint por que
tu puedes darle al constraint un nombre no relacionado.

Chequeando un poco mas, veo que desde 9.2 existe GET STACKED
DIAGNOSTICS que te permite sacar información sobre el mensaje de
error, la tabla y otros datos.
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-EXCEPTION-DIAGNOSTICS-VALUES

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Linder Poclaba Lazaro 2014-02-03 13:53:01 LIMIT y OFFSET hacen lenta un QUERY
Previous Message Martín Marqués 2014-02-01 17:06:05 Re: Consulta y Saludos.