From: | Alvaro Herrera <alvherre(at)surnet(dot)cl> |
---|---|
To: | Máximo Eduardo Méndez <mmendez(at)ceride(dot)gov(dot)ar> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Códigos de Error |
Date: | 2005-05-17 19:42:29 |
Message-ID: | 20050517194229.GA9624@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tue, May 17, 2005 at 04:14:59PM +0000, Máximo Eduardo Méndez wrote:
> > > > > Hola Lista. Necesito poder recuperar el código de error que se genera
> > > > > cuando se ejecuta cualquier sentencia SQL. Trabajando en psql o
> > > > > mediante un cliente pgAdmin III, me indica el texto del error pero no
> > > > > el número o código de error. Por ejemplo si intento ingresar una fila
> > > > > en una tabla con una primary key que ya existe, me muestra el texto:
> > > > > ERROR: Cannot insert a duplicate key into unique index
> > > > > institucional_pkey.
> > > >
> > > > Que version estas usando?
> > >
> > > Estoy usando la versión 7.3 sobre un linux fedora 1. Lo que necesito
> > > es algo que desde el mismo servidor postgresql me tire el código de
> > > error, tal vez tocando algún parámetro de configuración me permita
> > > eso. De esta manera desde un cliente podría recuperar ese código de
> > > error y no siempre cero (como ocurre actualmente) junto con el mensaje
> > > correspondiente.
> >
> > Lo siento, los codigos de error fueron incorporados a Postgres en 7.4.
> > Si actualizas a esa version puedes obtenerlos facilmente.
>
>
> Muchas gracias Alvaro por tu colaboración. De qué manera puedo
> obtener ahora el código de error en las nuevas versiones además del
> texto?
Depende del driver. En psql puedes hacer esto:
alvherre=# \set VERBOSITY verbose
alvherre=# select foo;
ERROR: 42703: no existe la columna «foo»
LOCATION: transformColumnRef, /home/alvherre/CVS/pgsql/source/00orig/src/backend/parser/parse_expr.c:391
El 42073 es SQLSTATE. Mira la documentacion de tu biblioteca o
controlador.
alvherre=# create table test (a int unique);
NOTICE: 00000: CREATE TABLE / UNIQUE creará el índice implícito «test_a_key» para la tabla «test»
LOCATION: DefineIndex, /home/alvherre/CVS/pgsql/source/00orig/src/backend/commands/indexcmds.c:383
CREATE TABLE
alvherre=# insert into test values (1);
INSERT 0 1
alvherre=# insert into test values (1);
ERROR: 23505: llave duplicada viola restricción unique «test_a_key»
LOCATION: _bt_check_unique, /home/alvherre/CVS/pgsql/source/00orig/src/backend/access/nbtree/nbtinsert.c:251
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"La primera ley de las demostraciones en vivo es: no trate de usar el sistema.
Escriba un guión que no toque nada para no causar daños." (Jakob Nielsen)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-05-17 19:44:37 | Re: Instalación versión 8.0.2 |
Previous Message | Mximo Eduardo Mndez | 2005-05-17 17:56:19 | Re: Instalacin versin 8.0.2 |