Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Pepe Ballaga <pepe(at)transnet(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function
Date: 2005-08-30 14:33:02
Message-ID: 20050830143302.GF16133@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Tue, Aug 30, 2005 at 10:00:41AM -0400, Pepe Ballaga wrote:
> este es el mensaje de error que me da
>
> ERROR: syntax error at or near "$1" at character 28
> QUERY: INSERT INTO trabajadores ( $1 , $2 , $3 , $4 , $5 , $6 , $7 ,
> $8 , $9 , $10 , $11 , $12 , $13 , $14 , fk_escolaridad,
> ubicacion_defensa, $15 , $16 , fk_cargo, $17 , fk_tipocontra

El problema es que estas definiendo variables que se llaman igual que
las columnas de la tabla, cosa que no funciona correctamente. Esto se
nota porque esta reemplazando los nombres de las columnas en la lista de
columnas del insert, ademas de en la lista de valores. O sea

insert into tabla (una, otra) values (una, otra)

queda en

insert into tabla ($1, $2) values ($1, $2)

Cambia los nombres de las variables, por ej.

> CREATE OR REPLACE FUNCTION addprueba(_varchar) RETURNS void AS
> $BODY$
> DECLARE
> var1 ALIAS FOR $1;
> _numero varchar:= var1[1];
> _ci varchar:= var1[2];
> _nombre text:= var1[3];
> _apellido1 text:= var1[4];
> _apellido2 text:= var1[5];

Etc.

--
Alvaro Herrera <alvherre[]alvh.no-ip.org> Architect, www.EnterpriseDB.com
"Acepta los honores y aplausos y perderás tu libertad"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Loan Joa Matos 2005-08-30 15:23:15 ¿Necesito saber sobre los log de postgres?
Previous Message Pepe Ballaga 2005-08-30 14:00:41 Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function