Muchas gracias, con GET STACKED DIAGNOSTICS solucione mi problema.Saludos.
> From: [email protected] > Date: Sat, 1 Feb 2014 12:34:00 -0500 > Subject: Re: [pgsql-es-ayuda] Personalizar SQLERRM > To: [email protected] > CC: [email protected]; [email protected] > > 2014-02-01 Jorge Medina <[email protected]>: > > > > 2014-02-01 Jaime Casanova <[email protected]> > > > >> 2014-01-31 Pedro PG <[email protected]>: > >> > > >> > 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 ([email protected]) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda
